MATLAB基础入门之画图2

  • 一个窗口同时画多张图

  假如先画一张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);

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风雨依依

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值