Simulink建模与仿真(4)-Simulink使用基础(MATLAB的基本绘图功能)
  8W0nCrp2HjCF 2023年12月06日 13 0

✅作者简介:热爱科研的算法开发者,Python、Matlab项目可交流、沟通、学习。

🍎个人主页:算法工程师的学习日志


分享一个系列,关于Simulink建模与仿真,尽量整理成体系


MATLAB作为高性能、交互式的科学计算工具,具有非常友好的图形界面,这使得MATLAB的应用非常广泛;同时MATLAB也提供了强大的绘图功能,这使得用户可以通过对MATLAB内置绘图函数的简单调用,便可迅速绘制出具有专业水平的图形。在利用Simulink进行动态系统仿真时,图形输出可以使设计者快速地对系统性能进行定性分析,故可大大缩短系统开发时间。

MATLAB的图形系统是面向对象的。图形的要素,如坐标轴、标签、观察点等都是独立的图形对象。一般情况下,用户不需直接操作图形对象,只需调用绘图函数就可以得到理想的图形。

1、基本的二维图形绘制命令

(1)plot(x,y):输出以向量x为横坐标,以向量y为纵坐标且按照x,y元素的顺序有序绘制的图形。x与y必须具有相同长度

(2)plot(y):输出以向量y元素序号m为横坐标,以向量y对应元素ym为纵坐标绘制的图形。

(3)plot(x1,y1,'str1',x2,y2,'str2',…):用'str1'指定的方式,输出以x1为横坐标,y1为纵坐标的图形。用'str2'指定的方式,输出以x2为横坐标,y2为纵坐标的图形。若省略'str',则MATLAB自动为每条曲线选择颜色与线型。'str'选项中的部分参数如表所示。

Simulink建模与仿真(4)-Simulink使用基础(MATLAB的基本绘图功能)_命令行

2、简单的三维图形绘制命令

(1)plot3(x,y,z):用向量x、y和z的相应点(xi,yi,zi)进行有序绘制三维图形。向量x,y,z必须具有相同的长度。

(2)plot3(x1,y1,z1,'str1',x2,y2,z2'str2',…):用'str1'指定的方式,对x1,y1和z1进行绘图;用'str2'指定的方式,对x2,y2和z2进行绘图;如果省略'str',则MATLAB自动选择颜色与线型。

3、图形绘制举例

【例】用MATLAB绘制正弦函数在[0,2π]中的图形。

解:在MATLAB命令行下输入

x=0:0.1:2*pi;%pi为MATLAB中默认的圆周率
y=sin(x);
plot(x,y,'*');

其中x为自变量,这里使用冒号表达式设定其取值步长为0.1,取值范围为[0,2π]。用星号'*'输出图形,结果如图所示。

Simulink建模与仿真(4)-Simulink使用基础(MATLAB的基本绘图功能)_命令行_02

4、简单的图形控制命令

(1) clc:清除命令窗口。

(2) grid on:自动在各个坐标轴上加上虚线型的网格。

(3) hold on:保持当前的图形,允许在当前图形状态下绘制其它图形,即在同一图形窗口中绘制多幅图形。

(4) hold off:释放当前图形窗口,绘制的下一幅图形将作为当前图形,即覆盖原来图形。这是MATLAB的缺省状态。

(5) hold:在hold on与hold off之间进行切换。

5、简单的子图命令

(1) subplot(m,n,p):将图形窗口分成m行n列的子窗口,序号为p的子窗口为当前窗口。子窗口的编号由上至下,由左至右。

(2) subplot:设置图形窗口为缺省模式,即subplot(1,1,1)单窗口模式。

【例】 绘出在三维空间中的一个随机曲线。

在MATLAB命令行下输入

x=cumsum(rand(1,1000)-0.5);
y=cumsum(rand(1,1000)-0.4);
z=cumsum(rand(1,1000)-0.3);
plot3(x,y,z)
grid;

Simulink建模与仿真(4)-Simulink使用基础(MATLAB的基本绘图功能)_子窗口_03

【例】 在一个图形窗口的左侧子图中绘制函数y1(x)=x^3-2x-3,在右侧子图中绘制函数y2(x)=xsin(x),其中x=[-3,3]。

在MATLAB命令行下输入:

x=-3:0.1:3;
y1=x.^3-2*x-3;
y2=x.*sin(x);
subplot(1,2,1),
plot(x,y1,'*'),
grid
subplot(1,2,2),
plot(x,y2,'-'),
grid

Simulink建模与仿真(4)-Simulink使用基础(MATLAB的基本绘图功能)_命令行_04


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年12月06日 0

暂无评论

8W0nCrp2HjCF