Matlab绘图相关

来源:互联网 发布:linux expect 返回值 编辑:程序博客网 时间:2024/06/10 23:59

绘图基础 plot

注意 : label不要拼写错误

>> x = [0:0.01:10]; %范围>> y = cos(x); %函数>> plot(x, y), xlabel('x'), ylabel('cos(x)'); %plot

多函数相乘 .*

当一个函数是由二个或多个函数相乘构成,别忘记在相乘时加上“ .”以便告诉 MATLAB 我们是对两个矩阵进行相乘
错误实例:

>> t = [0:0.02:4];>>> f = exp(-2*t)*sin(t);>错误使用  * 内部矩阵维度必须一致。

解决方法:

    1.
>> fplot('exp(-2*t)*sin(t)',[0, 4]), xlabel('t'), ylabel('f(t)'),title('阻尼弹力')

    2.
>> t = [0:0.02:4];>> f = exp(-2*t).*sin(t);  %注意此处为点乘(矩阵相乘)>> plot(t, f)

添加网格 grid on & 坐标轴控制 axis

>> x = [-6:0.01:6];>> y = tanh(x); %双曲正切>> plot(x,y), grid on

  • axis square 这会使得 MATLAB 产生正方形图象
  • axis equal 产生一个两坐标轴比例和间距都相同的图象
>> plot(x,y), grid on, axis equal

要让 MATLAB 自动选择,则输入 axis auto 进行切换即可

在同一图象中显示多个函数 plot(x,y,x,z)

>> t = [0:0.01:5];>> f = exp(-t);g = exp(-2*t);>> plot(t,f,t,g,'--') %成对,单引号表示风格

  • 实线 ‘-’
  • 虚线 ‘–’
  • 虚点线 ‘-.’
  • 点线 ‘:’

添加图例 legend(‘ ’,‘ ’)

语句加在plot后面,按顺序用单引号标注

>> x = [0:0.01:2];>> y = sinh(x);>> z = cosh(x);>> plot(x,y,x,z,'-.'), xlabel('x'), ylabel('Potential'), legend('sinh(x)','cosh(x)')

设置颜色

在plot的每对变量之后的单引号内加入颜色代表字符以及线型

>> plot(x,y,'r',x,z,'b--')

matlab中有八种颜色可供选择

颜色 说明符 白色 w 黑色 k 蓝色 b 红色 r 青色 c 绿色 g 洋红 m 蓝色 y

设置坐标轴范围 axis ( [xmin xmax ymin ymax] )

>> y = exp(-1.5*x).*sin(5*x + 3);>> plot(x,y), axis([0 5 -1 1])


改进坐标轴范围,使图片紧凑

>> y = exp(-1.5*x).*sin(5*x + 3);>> plot(x,y), axis([0 2 -0.8 0.3])


或者不使用坐标轴控制,直接plot,matlab自动显示为最合适比例

p.s 绘制y=sin2(5x)的图象
对 sin 函数平方的正确方法是使用数组相乘记号,即使用 A.^B 表示 AB。因此下面的命令才能正确工作

>> y = sin(5*x).^2;

子图 subplot(m, n, p)

子图有 m 行和 n 列, p 为当前绘制窗口

>> x = [0:0.01:5];y = exp(-1.2*x).*sin(20*x);subplot(1,2,1);plot(x,y),xlabel('x'),ylabel('exp(-1.2x)*sin(20x)'),axis([0 5 -1 1]);>> y = exp(-2*x).*sin(20*x);>> subplot(1,2,2);>> plot(x,y),xlabel('x'),ylabel('exp(–2x)*sin(20x)'),axis([0 5 -1 1]);

这里写图片描述

linspace命令

一个用来产生 x 数集的新命令,即 linspace 命令,它可以以两种方式调用。如果我
们写成:

x = linspace(a,b)

MATLAB 会在 a 到 b 间取出均匀分布的 100 个点(或行向量),如果写成

x = linspace(a,b,n)

那么 MATLAB 会在 a、 b 之间取出均匀分布的 n 个点。现在我们使用这个工具来绘制
cos(x)和 sin(x)的图象。我们用下面的命令在 0 到 2π 之间间隔均匀地取出 100 个点:

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

图像重叠 hold on

x = linspace(0,2*pi);plot(x, cos(x)),axis([0 2*pi -1 1])hold onplot(x, sin(x),'g'), axis ([0 2*pi -1 1])

这里写图片描述

极坐标 polar

极坐标图象,它绘制半径 r 和角度 θ 之间的图象。
作为第一个例子,我们绘制一条螺线——称为阿基米德螺线——它由下面的简单关系构成:
r = aθ
其中 a 是一个常数。我们绘制 a = 2 和 0≤θ≤2π 的极坐标图象。

a = 2; %定义常数atheta = [0: pi/90: 2*pi]; %角的范围r = a*theta; %定义函数rpolar(theta, r),title('阿基米德螺线') %画图

条形图 bar 针头图stem

用法和plot类似
其他图形我认为在Excel中画就可以了

Matlab图片清晰度

  • 设置 dpi
    dpi:Dots Per Inch的缩写。每英寸所打印的点数或线数
    File->Export setup->Rendering->resolution设置dpi即可

  • MATLAB保存生成高质量的清晰图片
    其实matlab的出图都是矢量图,在edit里面选择copy,然后paste到word里面,伸缩自如清晰

0 0