matlab绘图

摘要:
MatLab绘图作为一个功能强大的工具软件,Matlab具有很强的图形处理功能,提供了大量的二维、三维图形函数。例如,text将得到标注效果sin。x=0:pi/100:2*pi;y1=sin;y2=cos;plot;title;%title;xlabel;ylabel;text;text;在坐标范围0≤X≤2π,-2≤Y≤2内重新绘制正弦曲线,其程序为:x=linspace;%生成含有60个数据元素的向量Xy=sin;plot(x,y);axis;四、坐标控制axis函数的调用格式为:axis([xminxmaxym
MatLab绘图

作为一个功能强大的工具软件,Matlab具有很强的图形处理功能,提供了大量的二维、三维图形函数。由于系统采用面向对象的技术和丰富的矩阵运算,所以在图形处理方面方便又高效。

一般来说,一个命令行输入一条命令,命令行以回车结束。但一个命令行也可以输入若干条命令,各命令之间以逗号分隔,若前一命令后带有分号,则逗号可以省略。

如果一个命令行很长,一个物理行之内写不下,可以在第一个物理行之后加上3个小黑点并按下回车键,然后接着下一个物理行继续写命令的其他部分。3个小黑点称为续行符,即把下面的物理行看作该行的逻辑继续。

二维图形

一、 plot函数
① 函数格式:plot(x,y) 其中x和y为长度相同
坐标向量
函数功能:以向量x、y为轴,绘制曲线。

【例】 在区间0≤X≤2内,绘制正弦曲线y=sin(x)

其程序为:
x=0:pi/100:2*pi; %必须加上分号,否则x直接显示出来啦
y=sin(x);%必须加上分号,否则x直接显示出来啦
plot(x,y)

【例】在0≤x≤2区间内,绘制曲线 y=2e-0.5xcos(4πx)

程序如下:
x=0:pi/100:2*pi;
y=2*exp(-0.5*x).*cos(4*pi*x);
plot(x,y)

plot函数最简单的调用格式是只包含一个输入参数:
plot(x)
在这种情况下,当x是实向量时,以该向量元素的下标为横坐标,元素值为纵坐标画出一条连续曲线,这实际上是绘制折线图。

② 含多个输入参数的plot函数调用格式为: plot(x1,y1,x2,y2,…,xn,yn)

Ⅰ.当输入参数都为向量时,x1和y1,x2和y2,…,xn和yn分别组成一组向量对,每一组向量对的长度可以不同。每一向量对可以绘制出一条曲线,这样可以在同一坐标内绘制出多条曲线。
Ⅱ.当输入参数有矩阵形式时,配对的x,y按对应列元素为横、纵坐标分别绘制曲线,曲线条数等于矩阵的列数。

【例】同时绘制正、余弦两条曲线y1=sin(x)和
y2=cos(x),其程序为:

x=0:pi/100:2*pi;
y1=sin(x);
y2=cos(x);
plot(x,y1,x,y2)

或者

x=[0:0.5:360]*pi/180;

plot(x,sin(x),x,cos(x))

中间变量绘图

t=0:0.1:2*pi;
x=t.*sin(3*t); %.*表示点乘,*表示矩阵乘法
y=t.*sin(t).*sin(t);
plot(x,y);

matlab绘图第1张

【例】 分析下列程序绘制的曲线。
x1=linspace(0,2*pi,100);
x2=linspace(0,3*pi,100);
x3=linspace(0,4*pi,100);
y1=sin(x1);
y2=1+sin(x2);
y3=2+sin(x3);
x=[x1;x2;x3]';
y=[y1;y2;y3]';
plot(x,y,x1,y1-1)

matlab绘图第2张

③ 具有两个纵坐标标度的图形
在MATLAB中,如果需要绘制出具有不同纵坐标标度的两个图形,可以使用plotyy绘图函数。调用格式为:
plotyy(x1,y1,x2,y2)
其中x1,y1对应一条曲线,x2,y2对应另一条曲线。横坐标的标度相同,纵坐标有两个,左纵坐标用于x1,y1数据对,右纵坐标用于x2,y2数据对。

【例】用不同标度在同一坐标内绘制曲线
y1=0.2e-0.5xcos(4πx) 和
y2=2e - 0.5xcos(πx)

matlab绘图第3张

④ 图形保持
hold on/off命令控制是保持原有图形还是刷新原有图形,不带参数的hold命令在两种状态之间进行切换。
hold on:启动图形保持功能,当前坐标轴和图形都将保持,此后绘制的图形都将添加在这个图形之上,并且自动调整坐标轴的范围。
hold off:关闭图形保持功能。
hold :在hold on 和hold off命令之间进行切换。

【例】采用图形保持,在同一坐标内绘制曲线y1=0.2e-0.5xcos(4πx) 和y2=2e-0.5xcos(πx)。

程序如下:
x=0:pi/100:2*pi;
y1=0.2*exp(-0.5*x).*cos(4*pi*x);
plot(x,y1)
hold on
y2=2*exp(-0.5*x).*cos(pi*x);
plot(x,y2);
hold off

matlab绘图第4张

二、设置曲线样式格式:
MATLAB提供了一些绘图选项,用于确定所绘曲线的线型、颜色和数据点标记符号,它们可以组合使用。例如,“b-.”表示蓝色点划线,“y:d”表示黄色虚线并用菱形符标记数据点。当选项省略时,MATLAB规定,线型一律用实线,颜色将根据曲线的先后顺序依次。

调用格式为:plot(x1,y1,选项1,x2,y2,选项2,…,xn,yn,选项n)
要设置曲线样式可以在plot函数中加绘图选项,其调用格式为:
plot(x,y1,’cs’,...)
其中c表示颜色, s表示线型。

【例】 用不同线型和颜色重新绘制例2图形,其程序为:
x=0:pi/100:2*pi;
y1=sin(x);
y2=cos(x);
plot(x,y1,'go',x,y2,'b-.')
其中参数'go'和'b-.'表示图形的颜色和线型。g表示绿色,o表示图形线型为圆圈;b表示蓝色,-.表示图形线型为点划线。

matlab绘图第5张

【例】在同一坐标内,分别用不同线型和颜色绘制曲线y1=0.2e-0.5xcos(4πx) 和y2=2e-0.5xcos(πx),标记两曲线交叉点。
x=linspace(0,2*pi,1000);
y1=0.2*exp(-0.5*x).*cos(4*pi*x);
y2=2*exp(-0.5*x).*cos(pi*x);
k=find(abs(y1-y2)<1e-2);
%查找y1与y2相等点(近似相等)的下标
x1=x(k); %取y1与y2相等点的x坐标
y3=0.2*exp(-0.5*x1).*cos(4*pi*x1);
%求y1与y2值相等点的y坐标
plot(x,y1,x,y2,'k:',x1,y3,'bp');

matlab绘图第6张

三、图形标记
在绘制图形的同时,可以对图形加上一些说明,如图形名称、图形某一部分的含义、坐标说明等,将这些操作称为添加图形标记。
title(‘加图形标题’);当前轴的正上方居
中位置处输出文本作为标题
xlabel('加X轴标记');
ylabel('加Y轴标记');
text(X,Y,'添加文本');

函数中的说明文字,除使用标准的ASCII字符外,还可使用LaTeX格式的控制字符,这样就可以在图形上添加希腊字母、数学符号及公式等内容。例如,text(0.3,0.5,‘sin({omega}t+{eta})’)将得到标注效果sin(ωt+β)。

x=0:pi/100:2*pi;
y1=sin(x);
y2=cos(x);
plot(x,y1,'b*',x,y2,'r>');
title('绘制正弦,余弦函数');
% title(date);
xlabel('横轴');
ylabel('纵轴');
text(2,1,'正弦曲线');
text(1,0.6,'余弦曲线');

matlab绘图第7张

【例】 在坐标范围0≤X≤2π,-2≤Y≤2内重新绘制正弦曲线,其程序为:
x=linspace(0,2*pi,60);
%生成含有60个数据元素的向量X
y=sin(x);
plot(x,y);
axis ([0 2*pi -2 2]);

matlab绘图第8张

四、坐标控制

axis函数的调用格式为:
axis([xmin xmax ymin ymax zmin zmax])
axis函数功能丰富,常用的格式还有:
axis equal:纵、横坐标轴采用等长刻度。
axis square:产生正方形坐标系(缺省为矩形)。
axis auto:使用缺省设置。
axis off:取消坐标轴。
axis on:显示坐标轴。

给坐标加网格线用grid命令来控制。grid on/off命令控制是画还是不画网格线,不带参数的grid命令在两种状态之间进行切换。
给坐标加边框用box命令来控制。box on/off命令控制是加还是不加边框线,不带参数的box命令在两种状态之间进行切换。

matlab绘图第9张

五、加图例
给图形加图例命令为legend。该命令把图例放置在图形空白处,用户还可以通过鼠标移动图例,将其放到希望的位置。
格式:legend('图例说明','图例说明');

【例】 为正弦、余弦曲线增加图例,其程序为:
x=0:pi/100:2*pi;
y1=sin(x);
y2=cos(x);
plot(x,y1,x,y2, '--');
legend('sin(x)','cos(x)');

matlab绘图第10张

六、对函数自适应采样的绘图函数
fplot函数则可自适应地对函数进行采样,能更好地反应函数的变化规律。
fplot函数的调用格式为:
fplot(fname,lims,tol,选项)
其中fname为函数名,以字符串形式出现,lims为x,y的取值范围,tol为相对允许误差,其系统默认值为2e-3。选项定义与plot函数相同。

【例】用fplot函数绘制f(x)=cos(tan(πx))的曲线。

命令如下:
fplot('cos(tan(pi*x))',[ 0,1],1e-4)
或可先建立函数文件fct.m,其内容为:
function y=fct(x)
y=cos(tan(pi*x));
用fplot函数调用fct.m函数,其命令为:
fplot(‘fct’,[0 1])

matlab绘图第11张

七.极坐标图

polar函数用来绘制极坐标图,其调用格式为:
polar(theta,rho,选项)
其中theta为极坐标极角,rho为极坐标矢径,选项的内容与plot函数相似。

例 绘制r=sin(t)cos(t)的极坐标图,并标记数据点。
程序如下:

1 t=0:pi/50:2*pi;
2 r=sin(t).*cos(t);
3 polar(t,r,'-*');

matlab绘图第12张

八.图形标记

title(‘加图形标题');
xlabel('加X轴标记');
ylabel('加Y轴标记');
text(X,Y,'添加文本');
Legend(‘sin(x)’);%加图例

绘制三维螺旋曲线

1 t=0:pi/50:10*pi;
2 x=sin(t),y=cos(t);
3 plot3(x,y,t);
4 title('helix'),text(0,0,0,'origin');
5 xlabel('sin(t)'),ylabel('cos(t)'),zlabel('t');
6 grid on;%加上虚线网格线可以更好的看到对应区间的值

matlab绘图第13张

九.绘制三维网格图。函数格式:mesh(x,y,z,c)
其中:x,y控制X和Y轴坐标
矩阵z是由(x,y)求得Z轴坐标
(x,y,z)组成三维空间的网格点
c用于控制网格点颜色

1 %绘制三维网格曲面图
2 x=[0:0.15:2*pi];
3 y=[0:0.15:2*pi];
4 z=sin(y')*cos(x); %矩阵相乘
5 mesh(x,y,z);

matlab绘图第14张

1 %画出由函数形成的立体网状图:
2 x=linspace(-2, 2, 25); % 在x轴上取25点 
3 y=linspace(-2, 2, 25); % 在y轴上取25点 
4 [xx,yy]=meshgrid(x,y); % xx和yy都是21x21的矩阵 
5 zz=xx.*exp(-xx.^2-yy.^2); % 计算函数值,zz也是21x21的矩阵 
6 mesh(xx, yy, zz); % 画出立体网状图 

matlab绘图第15张

十.surf函数

绘制三维曲面图,各线条之间的补面用颜色填充。surf函数和mesh函数的调用格式一致。
函数格式: surf (x,y,z)
其中x,y控制X和Y轴坐标,矩阵z是由x,y求得的曲面上Z轴坐标。

1 % 绘制三维曲面图
2 x=[0:0.15:2*pi];
3 y=[0:0.15:2*pi];
4 z=sin(y')*cos(x); %矩阵相乘
5 surf(x,y,z);

matlab绘图第16张

复制代码
1 %剔透玲珑球
2 [X0,Y0,Z0]=sphere(30);       %产生单位球面的三维坐标
3 X=2*X0;Y=2*Y0;Z=2*Z0;     %产生半径为2的球面的三维坐标,若加上常数则是圆心
4 surf(X0,Y0,Z0);          %画单位球面
5 shading interp               %采用插补明暗处理
6 hold on; mesh(X,Y,Z);hold off       %画外球面
7 hidden off                    %产生透视效果
8 axis off          %不显示坐标轴
复制代码

matlab绘图第19张

复制代码
 1 %卫星返回地球的运动轨线示意。
 2 R0=1;            %以地球半径为一个单位
 3 a=12*R0;b=9*R0;T0=2*pi;       %T0是轨道周期
 4 T=5*T0;dt=pi/100;t=[0:dt:T]';f=sqrt(a^2-b^2);  %地球与另一焦点的距离
 5 th=12.5*pi/180;    %卫星轨道与x-y平面的倾角
 6 E=exp(-t/20);    %轨道收缩率
 7 x=E.*(a*cos(t)-f);y=E.*(b*cos(th)*sin(t));z=E.*(b*sin(th)*sin(t));
 8 plot3(x,y,z,'g')    %画全程轨线
 9 [X,Y,Z]=sphere(30);X=R0*X;Y=R0*Y;Z=R0*Z;  %获得单位球坐标
10 grid on,hold on,surf(X,Y,Z),shading interp     %画地球
11 x1=-18*R0;x2=6*R0;y1=-12*R0;y2=12*R0;z1=-6*R0;z2=6*R0;
12 axis([x1 x2 y1 y2 z1 z2])    %确定坐标范围
13 view([117 37]),comet3(x,y,z,0.02),hold off     %设视角、画运动轨线  
复制代码

matlab绘图第22张

十一.等高线图

1 %多峰函数peaks的等高线图
2 [x,y,z]=peaks(30);%产生一个凹凸有致的曲面,包含了三个局部极大点及三个局部极小点
3 contour3(x,y,z,16);
4 xlabel('x-axis'),ylabel('y-axis'),zlabel('z-axis');
5 title('contour3 of peaks')

matlab绘图第23张

十二.动画设计

复制代码
1 %动画功能函数:getframe、moviein和movie
2 %播放一个不断变化的眼球程序。
3 m=moviein(20); %建立一个20个列向量组成的矩阵
4 for j=1:20
5    plot(fft(eye(j+10))) %绘制出每一幅眼球图并保存到m矩阵中
6    m(:,j)=getframe;
7 end
8 movie(m,10);%以每秒10幅的速度播放画面
复制代码

matlab绘图第26张

本文版权归作者火星十一郎所有,欢迎转载和商用,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.
分享到:更多

免责声明:文章转载自《matlab绘图》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇使用sdk方式获取微信的用户信息HP-UX常用命令下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

matlab初探寻

1 matlab 2 <iframe src="http://player.bilibili.com/player.html?aid=74994893&cid=128293306&page=1" scrolling="no" border="0" frameborder="no" framespacing="0" allowfu...

Matlab高级教程_第二篇:Matlab相见恨晚的模块_02_并行运算-1

1  更高级的算法牵扯到更多重的循环和复杂的计算,尤其是现在人工智能的算法尤其如此。有些历史知识的人能够了解到,人工智能的很多基本算法其实近百年之前就有了,但是当时的计算机技术达不到去实现这些算法的要求,因此当今计算机的技术和当时已经不是在一个量级上面,因此人工智能等方案才有被重新提上日程,获得飞速的发展。也就是说,当人的思想超越当今的技术的时候我们只能等...

MATLAB中floor、round、ceil、fix区别

Matlab取整函数有: fix, floor, ceil, round.具体应用方法如下:fix朝零方向取整,如fix(-1.3)=-1; fix(1.3)=1;floor,顾名思义,就是地板,所以是取比它小的整数,即朝负无穷方向取整,如floor(-1.3)=-2; floor(1.3)=1;floor(-1.8)=-2,floor(1.8)=1ceil...

基础方法或属性: 列表,元组,字典,字符串,集合及内置函数等(注:只有英文名)

列表 list append clear copy count extend index insert pop remove reverse sort 元组 tuple count index 字典 dict clear copy fromkeys get items keys pop popitem setdefault update values 字...

全面总结:matlab怎么做漂亮的图

源地址:http://blog.csdn.net/ccxcau/article/details/7362764 MATLAB受到控制界广泛接受的一个重要原因是因为它提供了方便的绘图功能.本章主要介绍2维图形对象的生成函数及图形控制函数的使用方法,还将简单地介绍一 些图形的修饰与标注函数及操作和控制MATLAB各种图形对象的方法. 第一节 图形窗口与坐标系...

Matlab自定义函数的五种方法 [转]

n1、函数文件+调用命令文件:需单独定义一个自定义函数的M文件; n2、函数文件+子函数:定义一个具有多个自定义函数的M文件; n3、Inline:无需M文件,直接定义; n4、Syms+subs:无需M文件,直接定义; n5、字符串+subs:无需M文件,直接定义. 1、函数文件+调用函数文件:定义多个M文件: %调用函数文件:myfile.m cle...