Matlab入门基础 note3——绘图与图形(1)

Matlab Chapter III 绘图与图形

2D绘图基础
在这章里,自己打开Matlab并绘图是必要的;文章仅提供对应代码,鼓励你自己去尝试并画出漂亮的函数图像

matlab绘图主要包括3个流程:

  1. 定义函数
  2. 指定绘图值域
  3. 调用函数plot(x,y)
    让我们以正态函数为例:
>> x=[ -5:1:5];
y=normpdf(x,0,1);
plot(x,y)

但这样画出来的图像是粗糙的,这是因为我们的步长过大,因此我们需要调整函数的区间:

x=[ start : interval : end ];interval默认值为1

我们不妨将步长调整为0.1:

>> x1=[-5:5];
x2=[-5:0.1:5];
y1=normpdf(x1,0,1);
y2=normpdf(x2,0,1);

plot(x1,y1,x2,y2)

这段指令将帮助你在同一幅图中画出两个步长分别为1和0.1的正态函数,你可以明显看到曲线变得更加平滑了!
figure1

我们可以通过xlabelylabel给坐标轴添上标签,并且用title添上标题,只要对最后一行稍作改动:

plot(x1,y1,x2,y2),xlabel('x'),ylabel('f(x)'),title('标准正态函数的图像');

figure2

特别的,当我们需要绘制的图像函数中包含了相乘时,例如:f = exp(-2*t)*sin(t);
直接调用plot将会提示error,我们必须使用矩阵相乘: f = exp(-2*t).*sin(t); (平方等同理)

或者使用fplot函数:fplot('exp(-2*t)*sin(t)',[0,4])

fplot语法:
fplot(‘function string’, [xstart, xend])

坐标轴命令
axis square产生正方形图像;
axis equal产生一个坐标完全相同的图像;
你也可以使用axis auto来让matlab自己挑选适合的风格;
axis()可以设置坐标轴范围,语法是:axis([xmin xmax ymin ymax])

添加图例
专业图像总是附有图例,以告诉读者某个曲线具体是什么,同样只需要添加在plot(x,y)后面,我们继续以正态分布的图像为例:

>> x = [-5:0.1:5];
y=normpdf(x,0,1);
plot(x,y),xlabel('x'),ylabel('f(x)'),legend('标准正态分布的概率密度函数')

![figure3]

设置线条与颜色
matlab包含4种线条,分别是:

  1. -
  2. --
  3. -.
  4. :

并可以调用多种不同的颜色:

r-red; g-green; b-blue; k-black; w-white; y-yellow

子图
subplot(m,n,p)m和n表示产生的子图有m行n列,p指向图形窗口,我们以例子说明:

>> x=[-5:0.1:5];
   y=sin(3*x);
   z=2*cos(2*x);
   subplot(1,2,1)
>>plot(x,y,'r'),xlabel('x'),ylabel('sin3x'),title('figure1')
>> subplot(1,2,2)
>> plot(x,z,'b'),xlabel('x'),ylabel('2cos2x'),title('figure2')

![figure4]

  • 注意我们必须先使用subplot指向具体的子图,再对它用plot进行绘制

linspace和图像重叠
x=linspace(a,b,n)表示从a,b之间均匀地取出n个点,n的默认值是100,例如:

>> x=linspace(0,2*pi);
>> plot(x,cos(x))

![figure5]

每次重新调用plot函数都会将原来的图像删除,为了绘制重叠的图像我们可以使用hold on命令,例如:

>> x=linspace(0,2*pi);
plot(x,cos(x))
>> hold on
>> plot(x,sin(x))

>> axis([0 2*pi -1.5 1.5]) %调整坐标轴以让我们的图像更为好看

这样就可以在一张图上画出重叠的cosx与sinx图像了
figure6

猜你喜欢

转载自blog.csdn.net/RiptidePzh/article/details/112983172