利用空闲时间把碎片化的MATLAB知识重新系统的学习一遍,为了在这个过程中加深印象,也为了能够有所足迹,我会把自己的学习总结发在专栏中,以便学习交流。
参考书目:《MATLAB基础教程 (第三版) (薛山)》
之前的章节都是基础的数据运算用法,对于功课来说更加重要的内容是建模、绘图、观察数据趋势,接下来我会结合自己的使用经验,来为大家分享绘图、建模使用的小技巧。
二维图形绘制
在本章开始前首先假定一组二维数组:
|---|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|
| x | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| y | 1.2 | 1.8 | 1.6 | 1.5 | 1.7 | 1.5 | 1.2 | 8.0 | 5.0 | 9.0 |
MATLAB的绘图需要数据作为支撑,可以将数据以EXECL表格的形式导入到MATLAB中,也可以在MATLAB中新建数据mat,需要用时直接引用即可。
绘制二维图形的主要函数为plot,以下是一些经常需要用到的绘图函数:
|----------|------------------------|
| 函数名 | 功能 |
| plot | 在线性坐标系中绘制二维图形 |
| loglog | 在对数坐标系中绘制二维图形 |
| semilogx | 二维图形绘制。x轴为对数坐标,y轴为线性坐标 |
| semilogy | 二维图形绘制,x轴为线性坐标,y为对数坐标 |
| plotyy | 绘制双y轴图形 |
这是MTALAB官网中关于线图函数的表格,供参考
以上的函数皆是绘制二维图形的,将坐标系对应后,对号入座的应用,应用方式都是一样的,不多加赘述,这里以用的最多的plot函数展开介绍。
plot函数:
|--------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------|---|
| plot(x,y) | 创建Y中数据对 x中对应值的二维线图。 注意: 1、要绘制由线段连接的一组坐标,请将x和Y指定为相同长度的向量。 2、要在同一组坐标区上绘制多组坐标,请将x或Y中的至少一个指定为矩阵。 | |
| plot(x,y,Linespecn) | 使用指定的线型、标记和颜色创建绘图。 | |
| plot(X1,Y1,....,Xn,Yn) | 在同一组坐标轴上绘制多对x和y坐标。此语法可替代将坐标指定为矩阵的形式. | |
| plot(X1,Y1,Linespec1,....,Xn,Yn,Linespecn) | 可为每个 x-y对组指定特定的线型、标记和颜色。您可以对某些 x-y 对组指定Linespec,而对其他对组省略它。例如,plot(X1,Y1,"o",X2,Y2)对第一个 x-y 对组指定标记,但没有对第二个对组指定标记。 | |
| plot(Y) | 绘制Y对一组隐式x坐标的图。 注意: 1、如果Y是向量,则x坐标范围从1到1ength(Y)。 2、如果Y是矩阵,则对于y中的每个列,图中包含一个对应的行。x坐标的范围是从1到Y的行数。 3、如果Y包含复数MATLAB绘制Y的虚部对Y的实部的图。如果同时指定了x和Y,虚部将被忽略。 | |
| plot(Y,Linespec) | 使用隐式x坐标绘制 Y,并指定线型、标记和颜色。 | |
1 plot(Y)
该命令中的Y可以是向量、实数矩阵或复数向量。如果是向量,就以向量的索引为横坐标,以向量元素值为纵坐标绘制图形,以直线段顺序连接各点:如果是矩阵,就绘制Y的各列:如果丫是复向量,就以复数的实部为横坐标,以虚部为纵坐标绘制图形,即plot(y)相当于 plot(real(y),imag(y)),而在其他的绘图格式中复数的虚部会被忽略。
例:
Matlab
x = randi(100,1,20)
y = 1/sqrt(2*pi)*exp(-1/2*x.^2);
plot(y)
2 plot(x,y)
该命令中的x和y可以为向量和矩阵,当x和y的结构不同时,有不同的绘制方式。x、y均为n维向量时,以x的元素为横坐标,以y的元素为纵坐标绘制图形。x为n维向量,y为mxn或nxm矩阵时,以x的元素为横坐标,绘制y的m个n维向量。x、y均为 m x n 矩阵时,以x的各列为横坐标,以y的对应列为纵坐标绘制图形.
Matlab
x = [1,2,3,4,5,6,7,8,9,10];
y = [1.2,1.8,1.6,1.5,1.7,1.5,1.2,8.0,5.0,9.0];
plot(x,y)
plot(x,y,'LineStyle','-','Color','r')
3 plot(x,y,Linespec)
该命令中加入了 LineSpec 参数,用于图形外观属性的控制,包括线条的形状、颜色和点的形状、颜色。该参数的常用设置选项如下表所示。