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

7 views (last 30 days)
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
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().
Amit Ifrach
Amit Ifrach on 23 Dec 2022
Hi sephen, thanks!
finalhis is the figure:
finalhis=figure(ADcntr);
and thanks for the append tip! :)
Amit.

Sign in to comment.

Accepted Answer

Sulaymon Eshkabilov
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
Walter Roberson
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.

Sign in to comment.

More Answers (1)

Walter Roberson
Walter Roberson on 24 Dec 2022
try
myAxes = subplot(1,3,n);
histogram(myAxes, allcellsareastot{1,n});
with no find()
  3 Comments
Walter Roberson
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
Walter Roberson on 25 Dec 2022
By the way, we recommend that you use fullfile() instead of building file names with '/' or '\' yourself.

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!