matlab eps scope simulink stateflow latex paper

为了能让matlab中仿真数据导出为eps格式图片,以便在写论文时能够加入latex中:

用matlab 的打印eps到文件的功能,得到的eps文件中的图像却是纵向的,而latex中需要的是横向的图片,所以需要重新导出。

matlab eps scope simulink stateflow latex paper
首先选择打印设置:如下图所示 单击Print Setup
弹出打印设置窗口,在方向选项里选择横向(默认是纵向的,所以需要选择为横向),之后不必点击确定,点击取消即可。
然后再打印eps到文件就就可以达到所需的效果。
matlab eps scope simulink stateflow latex paper
sfprint(gcs,'eps') 打印当前状态图
print -strainstateflow_ClearView -deps simmodel.eps 打印当前模型图(trainstateflow_ClearView为模型文件名)

另外 simulink 的scope里的图片不是很好,如果需要保存为eps,需要在模型中加入Sinks的Simout模块来输出,如下所示:

首先找到Sinks
matlab eps scope simulink stateflow latex paper
然后选择Simout
matlab eps scope simulink stateflow latex paper
如果是多维数据输出,需要用到mux,也需要加入,如下所示:
matlab eps scope simulink stateflow latex paper
然后,选择需要的数据输出,可以写一个简单的m文件:
x=2;%%%根据需要修改x和下面的代码
if x==3
subplot(3,1,1) %%图片分三行输出到一个窗口,现在输出第一个图放在第一行
plot(simout.time,simout.signals.values(:,1))
subplot(3,1,2) %%图片分三行输出到一个窗口,现在输出第一个图放在第二行
plot(simout.time,simout.signals.values(:,2))
subplot(3,1,3) %%图片分三行输出到一个窗口,现在输出第一个图放在第三行
plot(simout.time,simout.signals.values(:,3))
else
subplot(2,1,1) %%图片分两行输出到一个窗口,现在输出第一个图放在第一行
plot(simout.time,simout.signals.values(:,1))
subplot(2,1,2) %%图片分两行输出到一个窗口,现在输出第一个图放在第二行
plot(simout.time,simout.signals.values(:,2))
end

显示Figure窗口后,根据需要修改坐标等信息,修改完后 关闭属性设置部分,缩放窗口,调整大小,之后保存为eps
最好是将Figure保存为fig文件,以便日后修改再多次利用,不必再次实验。

你可能感兴趣的:(matlab)