【问题标题】:How can I fix the 'saveas' code to save pdf-files containing simulink simulation results by using 'strcat'?如何修复“saveas”代码以使用“strcat”保存包含 simulink 仿真结果的 pdf 文件?
【发布时间】:2019-08-09 21:51:00
【问题描述】:

我对以下代码感到困惑。我不明白为什么“saveas”功能不起作用,尽管我给出了正确的文件名、文件类型和 Simulink 模型的图形仿真结果图。我是否需要更改“strcat”代码中的某些内容?我也希望有人在这个问题上帮助我。

function nightly_simulation_Callback(hObject, eventdata, handles)
open_system('SimulinkModel.slx');
sim('SimulinkModel.slx');
hFig = findall(0,'tag','SIMULINK_SIMSCOPE_FIGURE');
name = strcat('NCSSimResults','_',num2str(1));
saveas(hFig, name, 'pdf');

导致的错误:

  • 使用 checkArgsForHandleToPrint 时出错句柄输入必须是标量、> 向量或向量元胞数组。 checkArgsForHandleToPrint 出错 > 打印错误>LocalCreatePrintJob(第 100 行)句柄 => checkArgsForHandleToPrint(0, varargin{:}); 打印错误(第 38 行)> [pj, inputargs] = LocalCreatePrintJob(varargin{:}); saveas 中的错误 >(第 181 行)> print(h, name, ['-d' dev{i}] ) GUI 中的错误>nightly_simulation_Callback (line 909) > saveas(hFig, name, 'pdf'); gui_mainfcn 中的错误(第 95 行)> feval(varargin{:}); GUI 中的错误(第 43 行)> gui_mainfcn(gui_State, varargin{:});

错误 matlab.graphics.internal.figfile.FigFile/read>@(hObject,eventdata)GUI('nightly_simulation_Callback',hObject,eventdata,guidata(hObject)) > 评估 DestroyedObject 回调时出错。


【问题讨论】:

  • saveas(hFig,[name '.pdf']); 这样可以解决问题吗?
  • 我试过了,它奏效了。非常感谢!

标签: matlab save simulation simulink strcat


【解决方案1】:

您有多个 Scope 块,因此 hFig 是一个向量,这正是 saveas 所抱怨的。

您需要有一个循环,并将每个图形/范围保存到不同的文件中。所以像

hFig = findall(0,'tag','SIMULINK_SIMSCOPE_FIGURE');
for idx = 1:numel(hFig)
   name = strcat('NCSSimResults','_Scope_',num2str(idx));
   saveas(hFig(idx), name, 'pdf');
end

或者更好的是获取单个 Scope 块的名称并将其用作每个文件的名称。

【讨论】:

  • 实际上我想将这些数字保存在一个 pdf 文件中,但我是在 mattesyo 的建议代码 'saveas(hFig,[name '.pdf']);' 的帮助下完成的但是我会记住你建议的代码,以便将数字保存在单独的 pdf 文件中。非常感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-22
  • 2021-10-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多