Fehler beim speichern in Fig File

3 次查看(过去 30 天)
Kevin
Kevin 2023-7-31
回答: Harald 2023-7-31
Ich habe im Appdesigner von Matlap eine App geschrieben die Signale ein lesen kann und in einer Grafik speichert. Nun möchte ich diese Grafik als Fig File speichern, manchmal klappt es und manchmal bekomme ich eine Fehlermeldung.
fig = figure;
fig.Visible = 'on';
figAxes = axes(fig);
allChildren = app.UIAxes_InputIS.XAxis.Parent.Children;
copyobj(allChildren, figAxes);
figAxes.XLim = app.UIAxes_InputIS.XLim;
figAxes.YLim = app.UIAxes_InputIS.YLim;
figAxes.ZLim = app.UIAxes_InputIS.ZLim;
figAxes.DataAspectRatio = app.UIAxes_InputIS.DataAspectRatio;
% Save as png and fig files.
saveas(fig, 'AnalogInput.png', 'png');
savefig(fig, 'AnalogInput.fig','compact');
% Delete the temporary figure.
delete(fig);
Ich kann es zwar als .png speichern aber savefig kommt immer dieselbe Meldung:
Error using savefig>localGetHandleAndFile
H must be an array of handles to valid figures.
Error in savefig (line 43)
[h, filename,saveCompactOnly] = localGetHandleAndFile(varargin{:});
Ich danke für jegliche Hilfe.

回答(1 个)

Harald
Harald 2023-7-31
Hallo,
bekommst du die Fehlermeldung nun manchmal (Einleitung) oder immer (vor Fehlermeldung)?
Eine mögliche Erklärung für "manchmal" wäre, dass die Figure zwischenzeitlich vom Anwender weggeklickt wurde. Eine Lösung könnte dann 'Visible', 'off' sein - wenn die Figure nur zum Speichern erstellt wird, muss der Anwender das ja nicht mitbekommen.
Eine andere wenn auch für mich eher unwahrscheinliche Möglichkeit wäre, dass delete ausgeführt wird bevor das Speichern abgeschlossen ist. Dann würde wohl ein drawnow vor dem delete helfen.
Sollte das "immer" passieren, würde ich einen Haltepunkt in die Zeile setzen und mir fig ansehen.
Sollte deine andere Frage nun beantwortet sein, bitte das auch entsprechend markieren.
Vielen Dank und viele Grüße,
Harald

Community Treasure Hunt

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

Start Hunting!