Filter löschen
Filter löschen

loop of exportgraphics fails for dot indexing only in the second loop

6 Ansichten (letzte 30 Tage)
Hello guys, how are you?
I got a piece of my code which meant to show and export a histogeram automatutically. it works somewhy for the first indice, but then it fails. i saw several posts about this problem, which talked about handle (which I don't use anyways) and critical failure of indexing (which I belive it is not in my case).
the code:
for n=1:length(allcellsnames)
subplot(1,3,n)
histogram(allcellsareastot{1,n});
myAxes=findobj(finalhis,'Type','Axes');
fnfh=append(append(erase(lastentryname, '.csv'),' finalhis'));
fhpath=(append(pwd ,append('\',append('summary figure', append('\',append('summary figure ', append(num2str(minint(n)), append(' i ', append(num2str(maxint(n)), '.png')))))))))
exportgraphics(myAxes,(fhpath));
analysisdata{9+n,1}=allcellsnames{n};
analysisdata{9+n,2}=allcellsareastot{1,n};
end
The first indice goes good and it saves my image. in the second it subplots it to the figure, but somewhy fails to save.
it fails in the " exportgraphics(myAxes,(fhpath));"
here is the output that shows the first is fine, but the second messed up:
fhpath =
'C:\Users\Ifrac\Desktop\מעבדה\matlab\Voronoi analysis\voronoi code test\summary figure\summary figure 0.5 i 40.png'
fhpath =
'C:\Users\Ifrac\Desktop\מעבדה\matlab\Voronoi analysis\voronoi code test\summary figure\summary figure 1 i 45.png'
Error using exportgraphics
Dot indexing is not supported for variables of this type.
Error in Voronoi_exclude_borders_21122022allclareamatrixndfx (line 378)
exportgraphics(myAxes,(fhpath));
I would really appriciate any help :)
Thanks,
Amit.
  2 Kommentare
Stephen23
Stephen23 am 23 Dez. 2022
What is FINALHIS ?
Note that you do not need to call APPEND() multple times in one line like that: APPEND() accepts multiple inputs, so you only need to call it once. Even better would be to replace it with FULLFILE() and SPRINTF().
Amit Ifrach
Amit Ifrach am 23 Dez. 2022
Hi sephen, thanks!
finalhis is the figure:
finalhis=figure(ADcntr);
and thanks for the append tip! :)
Amit.

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Sulaymon Eshkabilov
Sulaymon Eshkabilov am 24 Dez. 2022
As you stated: finalhis=figure(ADcntr);
Then this command: exportgraphics(myAxes,(fhpath));
has to be:
exportgraphics(finlhis,fhpath);
  3 Kommentare
Sulaymon Eshkabilov
Sulaymon Eshkabilov am 25 Dez. 2022
Welcome. It requires a figure handle and thus, you'd need such syntax.
Walter Roberson
Walter Roberson am 25 Dez. 2022
exportgraphics(OBJ, FILESPEC) saves the specified graphics to a file.
OBJ is the handle of any type of an axes, a figure, a chart that can
be a child of the figure, a tiled chart layout, or a container within
the figure.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Walter Roberson
Walter Roberson am 24 Dez. 2022
try
myAxes = subplot(1,3,n);
histogram(myAxes, allcellsareastot{1,n});
with no find()
  3 Kommentare
Walter Roberson
Walter Roberson am 25 Dez. 2022
I do not know where you got the idea that allcellsareastot was to be passed to exportgraphics.
for n=1:length(allcellsnames)
myAxes = subplot(1,3,n);
histogram(myAxes, allcellsareastot{1,n});
fnfh=append(append(erase(lastentryname, '.csv'),' finalhis'));
fhpath=(append(pwd ,append('\',append('summary figure', append('\',append('summary figure ', append(num2str(minint(n)), append(' i ', append(num2str(maxint(n)), '.png')))))))))
exportgraphics(myAxes,(fhpath));
analysisdata{9+n,1}=allcellsnames{n};
analysisdata{9+n,2}=allcellsareastot{1,n};
end
Walter Roberson
Walter Roberson am 25 Dez. 2022
By the way, we recommend that you use fullfile() instead of building file names with '/' or '\' yourself.

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Printing and Saving finden Sie in Help Center und File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by