loop of exportgraphics fails for dot indexing only in the second loop
7 views (last 30 days)
Show older comments
Amit Ifrach
on 23 Dec 2022
Commented: Walter Roberson
on 25 Dec 2022
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 Comments
Stephen23
on 23 Dec 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().
Accepted Answer
Sulaymon Eshkabilov
on 24 Dec 2022
As you stated: finalhis=figure(ADcntr);
Then this command: exportgraphics(myAxes,(fhpath));
has to be:
exportgraphics(finlhis,fhpath);
3 Comments
Sulaymon Eshkabilov
on 25 Dec 2022
Welcome. It requires a figure handle and thus, you'd need such syntax.
Walter Roberson
on 25 Dec 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.
More Answers (1)
Walter Roberson
on 24 Dec 2022
try
myAxes = subplot(1,3,n);
histogram(myAxes, allcellsareastot{1,n});
with no find()
3 Comments
Walter Roberson
on 25 Dec 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
on 25 Dec 2022
By the way, we recommend that you use fullfile() instead of building file names with '/' or '\' yourself.
See Also
Categories
Find more on Title in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!