Save figure array error: "H must be an array of handles to valid figures"
38 次查看(过去 30 天)
显示 更早的评论
I have a custom method from an internal codebase that creates a bunch of figures.
I have all the figures open in Matlab and I would like to save them. However, this gives and error:
fig = CustomStruct.CreateFigureCustomMethod;
savefig(fig, 'name.fig');
"Error using savefig (line 43)
H must be an array of handles to valid figures."
But fig is actually a Figure array in the workspace!
I know this may be impossible to answer due to reproducibilty, but I wonder if there is another way to save all open figures.
I could dig into the method and modify it, but I have the same issue with several methods and I do not think this should be necessary.
1 个评论
Ameer Hamza
2020-10-7
This error will happen if any of the figures is closed. If all figure windows are open, it should work fine.
采纳的回答
Ameer Hamza
2020-10-7
Try this to only save figures that are currently open
idx = arrayfun(@ishandle, fig);
fig_new = fig(idx);
savefig(fig, 'name.fig');
4 个评论
Ameer Hamza
2020-10-7
I am glad to be of help! Yes, mathworks have made many improvements during recent releases. An upgrade will be a good option.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Printing and Saving 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!