第4章 MATLAB计算的可视化和GUI设计
MATLAB具有非常强大的二维和三维绘图功能,尤其擅长于各种科学运算结果的可视化。
4.1二维曲线的绘制
4.1.1基本绘图命令plot
1. plot(x) 绘制x向量曲线
plot命令是MATLAB中最简单而且使用最广泛的一个绘图命令,用来绘制二维曲线。 语法:
plot(x) %绘制以x为纵坐标的二维曲线
plot(x,y) %绘制以x为横坐标y为纵坐标的二维曲线 说明:x和y可以是向量或矩阵。
【例4.1】用plot(x)命令画直线,如图4.1所示。
图4.1 (a) x1曲线 (b) x2曲线
x1=[1 2 3]
x1 =
1 2 3
plot(x1)
x2=[0 1 0]
x2 =
0 1 0 plot(x2)
2. plot(x,y) 绘制向量x和y的曲线
【例4.2】绘制正弦曲线y=sin(x)和方波曲线,如图4.2所示。
x1=0:0.1:2*pi; y1=sin(x1); %y1为x1的正弦函数 plot(x1,y1);
x2=[0 1 1 2 2 3 ]; y2=[1 1 0 0 1 1 ]; plot(x2,y2);
axis([0 4 0 2]) %将坐标轴范围设定为0-4和0-2
图4.2 (a) 正弦曲线 (b) 方波曲线
3. plot(x) 绘制矩阵x的曲线
【例4.3】矩阵图形的绘制,如图4.3所示。
图4.3 (a) x1曲线 (b) x2曲线
x1=[1 2 3;4 5 6]; plot(x1);
x2=peaks; plot(x2);
%产生一个49*49的矩阵
程序分析:a图中有三条曲线而不是两条曲线,因为矩阵x1有三列,每列向量画一条曲线;b图为由peaks函数生成的一个49×49的二维矩阵,因此产生49条曲线。
4. plot(x,y)绘制混合式曲线
当plot(x,y)命令中的参数x和y是向量或矩阵时,分别有以下几种情况:
? 如果x是向量,而y是矩阵,则x的长度与矩阵y的行数或列数必须相等,如果x
的长度与y的行数相等,则向量x与矩阵y的每列向量对应画一条曲线;如果x的长度与y的列数相等,向量x与y的每行向量画一条曲线,如果y是方阵,则x和y的行数和列数都相等,将向量x与矩阵y的每列向量画一条曲线;
? 如果x是矩阵,而y是向量,则y的长度必须等于x的行数或列数,绘制的方法与前一种相似;
? 如果x和y都是矩阵,则大小必须相同,矩阵x的每列和y的每列画一条曲线。 【例4.4】混合式图形的绘制,如图4.4所示。
x1=[1 2 3];
y1=[1 2 3;4 5 6]
y1 =
1 2 3 4 5 6 plot(x1,y1) %每行一条曲线 y2=[1 2 ;3 4; 5 6]
y2 =
1 2 3 4 5 6 plot(x1,y2) %每列一条曲线 plot(y1,x1) plot(y2,x1)
x2=[1 1 1;2 2 2]
图4.4 (a) (x1,y1)曲线 (b) (x2,y1)曲线 图4.4 ( c) (y1,x1)曲线 (d) (y2,x1)曲线
x2 =
1 1 1 2 2 2 plot(x2,y1) %按列与列对应的方式
图4.4 (e) (x2,y1)曲线
5. plot(z)绘制复向量曲线
【例4.4续】下面的程序画出的曲线和图4.4(e)中的相同。
z1=x2+i*y1
z1 =
1.0000 + 1.0000i 1.0000 + 2.0000i 1.0000 + 3.0000i 2.0000 + 4.0000i 2.0000 + 5.0000i 2.0000 + 6.0000i plot(z1) %以实部为横坐标,虚部为纵坐标
6. plot(x1,y1,x2,y2,…)绘制多条曲线
plot命令还可以同时绘制多条曲线,用多个矩阵对为参数,MATLAB自动以不同的颜色绘制不同曲线。每一对矩阵(xi,yi)均按照前面的方式解释,不同的矩阵对之间,其维数可以不同。
【例4.5】绘制三条曲线,如图4.5所示。
x=0:0.1:2*pi;
plot(x,sin(x),x,cos(x),x,sin(3*x)) %画三条曲线
图4.5 三条曲线
4.1.2绘制曲线的一般步骤
表4.1为绘制二维、三维图形一般步骤的归纳。
表4.1 绘制二维、三维图形的一般步骤
步骤 1 曲线数据准备: 对于二维曲线,横坐标和纵坐标数据变量; 对于三维曲面,矩阵参变量和对应的函数值。 2 3 4 指定图形窗口和子图位置: 默认时,打开Figure No.1窗口或当前窗口、当前子图; 也可以打开指定的图形窗口和子图。 设置曲线的绘制方式: 线型、色彩、数据点形。 设置坐标轴: 坐标的范围、刻度和坐标分格线 内容