Save figure array error: "H must be an array of handles to valid figures"
조회 수: 32 (최근 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!
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/373926/image.png)
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에서 Interactive Control and Callbacks에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!