您当前的位置: 首页 >  matlab

仙剑情缘

暂无认证

  • 5浏览

    0关注

    333博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

MATLAB基础入门之画图2

仙剑情缘 发布时间:2019-09-15 12:55:07 ,浏览量:5

  • 一个窗口同时画多张图

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

 

 

 

 

 

 

关注
打赏
1658017818
查看更多评论
立即登录/注册

微信扫码登录

0.0597s