-
一个窗口同时画多张图
假如先画一张y等于x的平方一张图,则
x1 = -5:0.1:5;
y1 = x1.^2;
plot(x1,y1);
再画一张y等于x的三次方的图形,则
x1 = -5:0.1:5;
y1 = x1.^2;
plot(x1,y1);
x2 = -5:0.1:5;
y2 = x2.^3;
plot(x2,y2);
会发现只显示了后面的y等于x的三次方的图形,原因是MATLAB每次画图前会清掉前一次的图形,那如何解决呢?可以使用
hold on;
x1 = -5:0.1:5;
y1 = x1.^2;
plot(x1,y1);
hold on;
x2 = -5:0.1:5;
y2 = x2.^3;
plot(x2,y2);
如何在里面加入网格线,可以使用grid on来实现
x1 = -5:0.1:5;
y1 = x1.^2;
plot(x1,y1);
hold on;
x2 = -5:0.1:5;
y2 = x2.^3;
plot(x2,y2);
grid on;
如何在图形中加入标题呢,可以使用title函数
x1 = -5:0.1:5;
y1 = x1.^2;
plot(x1,y1);
hold on;
x2 = -5:0.1:5;
y2 = x2.^3;
plot(x2,y2);
grid on;
title('x^2 vs x^3');
如何在x轴和y轴加入标签呢,使用xlabel和ylabel函数来实现
x1 = -5:0.1:5;
y1 = x1.^2;
plot(x1,y1);
hold on;
x2 = -5:0.1:5;
y2 = x2.^3;
plot(x2,y2);
grid on;
title('x^2 vs x^3');
xlabel('x-axis');
ylabel('y-axis');
-
一个窗口内画多个图形
如果在一个窗口里画多个图形,怎么实现呢,可以使用subplot函数来实现
subplot(参数1,参数2,参数3)
参数1为对窗口分成多少行,参数2为对窗口分成多少列,参数3为在哪个子窗口内画图
例:在一个窗口内分别画出y1=sin(x),y2=sin(2x),y3=sin(3x),y4=sin(4x),x的取值为-4到4
step1:
先定义x的范围
x1 = -4:0.1:4;
step 2:
分别计算出y1,y2,y3,y4的值
y1 = sin(x);
y2 = sin(2.*x);
y3 = sin(3.*x);
y4 = sin(4.*x);
step 3:
使用subplot和plot函数分别画出y1,y2,y3,y4四个图形
subplot(2,2,1);
plot(x,y1);
subplot(2,2,2);
plot(x,y2);
subplot(2,2,3);
plot(x,y3);
subplot(2,2,4);
plot(x,y4);
完整代码如下:
x = -4:0.1:4;
y1= sin(x);
y2 = sin(2.*x);
y3=sin(3.*x);
y4=sin(4.*x);
subplot(2,2,1);
plot(x,y1);
subplot(2,2,2);
plot(x,y2);
subplot(2,2,3);
plot(x,y3);
subplot(2,2,4);
plot(x,y4);
如果在每个图形中加入标题呢,同样是使用title函数来实现
x = -4:0.1:4;
y1= sin(x);
y2 = sin(2.*x);
y3=sin(3.*x);
y4=sin(4.*x);
subplot(2,2,1);
plot(x,y1);
title('y=sin(x)');
subplot(2,2,2);
plot(x,y2);
title('y=sin(2x)');
subplot(2,2,3);
plot(x,y3);
title('y=sin(3x)');
subplot(2,2,4);
plot(x,y4);
title('y=sin(4x)');
-
一个窗口分成三个图形,第一行分成2列,第二行分成1列
假如要实现以下图形的绘制,要如何实现呢
绘制原理和上面基本上相同,区别在于y=cos(4x)图形,将3,4格合成一格,还是使用subplot函数来实现,要写成以下形式
subplot(参数1,参数2,[参数3起始列:参数3结束列])
完整实现代码如下:
x = -4:0.1:4;
y1 = cos(x);
y2 = cos(2.*x);
y3 = cos(4.*x);
subplot(2,2,1);
plot(x,y1);
title('y=cos(x)');
subplot(2,2,2);
plot(x,y2);
title('y=cos(2x)');
subplot(2,2,[3,4]);
plot(x,y3);
title('y=cos(4x)');
-
meshgrid函数和surf函数实现曲面图绘制
假如x的取值范围是-3到3,y的取值范围是-3到3,则
x = -3:3;
y = -3:3;
将x,y上所有的点meshgrid到矩阵[X,Y]中,则
[X,Y] = meshgrid(x,y);
那么Z轴投影点为
Z = X.^2+Y.^2;
最后使用surf函数画出曲面图
surf(X,Y,Z);
完整代码如下:
x = -3:3;
y = -3:3;
[X,Y] = meshgrid(x,y);
Z = X.^2+Y.^2;
surf(X,Y,Z);
上面的曲面图比较粗糙,现在要画细一点,则需对取点步长进行修改,每0.1的步长为一个点,完整代码如下
x = -3:0.1:3;
y = -3:0.1:3;
[X,Y] = meshgrid(x,y);
Z = X.^2+Y.^2;
surf(X,Y,Z);