目录
0 背景
在SIMULINK中用scope查看变量图像,不方便修改坐标轴、字体等,所以如果能用plot绘制SIMULINK中的数据的话,会很简便。
1 两种方法
1.1 方法一

①如图1所示,把需要绘制的变量连接模块:to workplace,变量名称就是你在workplace能看到的名字,为了演示不同变量类型的区别,这里我把a设置为Structure With Time,把b设置为Array;
②画图代码(结果如图2所示):
%% 这个在simulink中设置为Structure With Time
figure(1)
x1 = out.a.time;
y1 = out.a.signals.values;
plot(x1,y1,'LineWidth',2)
%% 这个在simulink中设置为Array
figure(2)
y2 = out.b;
x2 = 0:10/(length(y2)-1):10;%因为我设置的仿真时间是10,所以时间刻度就是10/(数据个数-1)
plot(x2,y2,'lineWidth',2)
%% 双y轴显示
figure(3)
yyaxis left%激活左侧
plot(x1,y1,'LineWidth',2)
yyaxis right%激活右侧
plot(x2,y2,'lineWidth',2)

因为我们经常要把不同信号放在同一个坐标系处理,而他们的幅值单位又不一样,所以双y轴图像就很好的处理了这一点,如figure3所示。
1.2 方法二
如图3所示,就是用图1所示的scope模块,打印到图窗就可以自定义了,但是没有方法一用代码的形式调整爽。

2 常用的画图命令
我想,希望用scope绘制simulink中图像的人,都是有一个爱美的心,那么我就分享一下我常用的绘图命令。
2.1 设置plot坐标轴和标题
ylabel('Power(kw)');%y轴
xlabel('Time(s)');%x轴
title('天亮有惊喜');
2.2 设置plot图像中字体大小(坐标轴、图例、刻度)
set(gca,'FontSize',30); %修改图中所有的字体大小
2.3 设置plot图像在屏幕中的位置和绝对大小
set(gcf,'unit','normalized','position',[0.05,0.2,0.82,0.65]);
%0.05和0.2修改图在屏幕中的位置,分别:自左向右,自下向上
%0.82,0.65分别改变长度和宽度
2.4 修改plot x轴和y轴刻度
yticks([0 0.1 0.2 0.5 1.0]); %修改y轴刻度
xticks([0 1 2 4 5 7 9 10]); %修改x轴刻度
2.5 修改plot图例的排列(横排或者竖排)
legend('a','b','c','NumColumns',3);
NumColumns表示希望图例显示的列数。我选择3,即为横排显示,如果是1,就是竖排显示。
2.6 修改plot坐标系最大最小值
axis([xmin xmax ymin ymax]);
2.7 保存高清图
print -djpeg -r600 imagename
3 待更新
ok了,有时间继续在这篇blog补充更新常用的命令和技巧
By the way:写文不易,能给赞嘛^ _ ^