5 MatLab2作图.docx

上传人:b****0 文档编号:9312708 上传时间:2023-05-18 格式:DOCX 页数:30 大小:469.05KB
下载 相关 举报
5 MatLab2作图.docx_第1页
第1页 / 共30页
5 MatLab2作图.docx_第2页
第2页 / 共30页
5 MatLab2作图.docx_第3页
第3页 / 共30页
5 MatLab2作图.docx_第4页
第4页 / 共30页
5 MatLab2作图.docx_第5页
第5页 / 共30页
5 MatLab2作图.docx_第6页
第6页 / 共30页
5 MatLab2作图.docx_第7页
第7页 / 共30页
5 MatLab2作图.docx_第8页
第8页 / 共30页
5 MatLab2作图.docx_第9页
第9页 / 共30页
5 MatLab2作图.docx_第10页
第10页 / 共30页
5 MatLab2作图.docx_第11页
第11页 / 共30页
5 MatLab2作图.docx_第12页
第12页 / 共30页
5 MatLab2作图.docx_第13页
第13页 / 共30页
5 MatLab2作图.docx_第14页
第14页 / 共30页
5 MatLab2作图.docx_第15页
第15页 / 共30页
5 MatLab2作图.docx_第16页
第16页 / 共30页
5 MatLab2作图.docx_第17页
第17页 / 共30页
5 MatLab2作图.docx_第18页
第18页 / 共30页
5 MatLab2作图.docx_第19页
第19页 / 共30页
5 MatLab2作图.docx_第20页
第20页 / 共30页
亲,该文档总共30页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

5 MatLab2作图.docx

《5 MatLab2作图.docx》由会员分享,可在线阅读,更多相关《5 MatLab2作图.docx(30页珍藏版)》请在冰点文库上搜索。

5 MatLab2作图.docx

5MatLab2作图

MatLab&数学建模

第二讲MatLab图形绘制功能

基本思路:

利用描点法,画某一有代表性的区间,区间分割越细即取更多的点,就越精确。

因此我们操作对象是一列数(数组)

一、二维平面图形

Plot(y),plot(x,y),plot(x,y,s)

Eg1.y=rand(100,1);

plot(y)

 

基本绘图函数

命令

含义

plot

建立向量或矩阵各队队向量的图形

loglog

x、y轴都取对数标度建立图形

semilogx

x轴用于对数标度,y轴线性标度绘制图形

semilogy

y轴用于对数标度,x轴线性标度绘制图形

title

给图形加标题

xlabel

给x轴加标记

ylabel

给y轴加标记

text

在图形指定的位置上加文本字符串

gtext

在鼠标的位置上加文本字符串

grid

打开网格线

plot绘图函数的参数

 

字元

颜色

字元

图线型态

 1

y

黄色

.

 2

k

黑色

o

 3

w

白色

x

x

 4

b

蓝色

+

+

 5

g

绿色

*

*

 6

r

红色

s

方形

 7

c

亮青色

d

菱形

 8

m

锰紫色

v

下三角

 9

-

实线

^

上三角

10

:

点线

<

左三角

11

-.

点虚线

>

右三角

12

--

虚线

p

五角星

h

六角星

holdon命令用于在已画好的图形上添加新的图形

plot是绘制一维曲线的基本函数,但在使用此函数之前,我们需先定义曲线上每一点的x及y坐标。

下例可画出一条正弦曲线:

x=0:

0.001:

10;%0到10的1000个点的x坐标

y=sin(x);%对应的y坐标

plot(x,y);%绘图

Y=sin(10*x);

plot(x,y,'r:

',x,Y,'b')%同时画两个函数

∙若要改变颜色,在座标对後面加上相关字串即可:

x=0:

0.01:

10;

plot(x,sin(x),'r')

若要同时改变颜色及图线型态(Linestyle),也是在坐标对後面加上相关字串即可:

plot(x,sin(x),'r*')

用axis([xmin,xmax,ymin,ymax])函数来调整图轴的范围

axis([0,6,-1.5,1])

MATLAB也可对图形加上各种注解与处理:

xlabel('x轴');%x轴注解

ylabel('y轴');%y轴注解

title('余弦函数');%图形标题

legend('y=cos(x)');%图形注解

gtext('y=cos(x)');%图形注解,用鼠标定位注解位置

gridon;%显示格线

eg.在同一张图中绘制几个三角函数图示例

x=0:

0.1*pi:

2*pi;

y=sin(x);

z=cos(x);

plot(x,y,'-*')

holdon

plot(x,z,'-o')

plot(x,y+z,'-p')

legend('sin(x)','cos(x)','sin(x)+cos(x)',0)

holdoff

另外介绍(title标题)

若需要显示诸如”\”、”{”、“^”等符号,则只需使用”\”来引导调用即可,即“\\”,”\{”、“\^”等.

此外,在数学计算表达式中经常遇到分数或指数,

MATLAB标注也包含了对这两种运算的表达,所有的调用符分别为”-”,”^”等,而相应的指数或分母则被置于大括号({})内。

(第2版p20[数学实验])

指令

效果

指令

效果

指令

效果

指令

效果

\alpha

\lambda

\geq

\ite^{-t}sint

\beta

\mu

\leq

\itx_{1}(t)

\delta

\rho

\pm

\bfExample

Example

\Delta

\sigma

\propto

\itExample

\theta

\phi

\times

\fontsize{14}Example

Example

\Theta

\omega

\partial

x=-8:

0.01:

8;

plot(x,exp(-x.^2/2),'r');

title('\bfy=e^{-x^{2}/2}')%\bf-黑体,并能显示乘方符号;

fplot的指令可以用来自动的画一个已定义的函数分布图,而无须产生绘图所须要的一组数据做为变数。

其语法为fplot('fun',[xminxmaxyminymax]),其中fun为一已定义的函数名称,例如sin,cos等等;而xmin,xmax,ymin,ymax则是设定绘图横轴及纵轴的下限及上限。

以下的例子是将一函数f(x)=sin(x)/x在-20

>>fplot('sin(x)./x',[-2020-0.41.2])

*以参数方程绘制图形

【例】画椭圆

a=[0:

pi/50:

2*pi]';%角度

X=cos(a)*3;%参数方程

Y=sin(a)*2;

plot(X,Y);

xlabel('x'),ylabel('y');

title('椭圆')

练习:

旋轮线

星形线

 

图形窗口的分割一般用命令subplot:

subplot(m,n,p);%把图形窗口分割成m×n,参数p是调用各个子绘图区域进行操作,子绘图区域的编号为按行从左至右编号(这与矩阵不一样)

subplot(2,2,1);

x=-0:

0.01:

8;

subplot(2,2,1);plot(x,sin(x));

subplot(2,2,2);plot(x,cos(x));

subplot(2,2,3);plot(x,sinh(x));

subplot(2,2,4);plot(x,cosh(x));

MATLAB还有其他各种二维绘图函数,以适合不同的应用,详见下表。

 

小整理:

其他各种二维绘图函数

 

bar

长条图

 

errorbar

图形加上误差范围

 

fplot

较精确的函数图形

 

polar

极坐标图

 

hist

直方图

 

rose

极坐标累计图

 

stairs

阶梯图

 

stem

针状图

 

fill

实心图

 

feather

羽毛图

 

compass

罗盘图

 

quiver

向量场图

当资料点数量不多时,长条图是很适合的表示方式:

closeall;%关闭所有的图形视窗

x=1:

10;

y=rand(size(x));

bar(x,y);

如果已知资料的误差量,就可用errorbar来表示。

下例以单位标准差来做资料的误差量:

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

y=sin(x);

e=std(y)*ones(size(x));

errorbar(x,y,e)

(*)对於变化剧烈的函数,可用fplot来进行较精确的绘图,会对剧烈变化处进行较密集的取样,如下例:

fplot('sin(1/x)',[0.020.2]);%[0.020.2]是绘图范围

若要产生极坐标图形,可用polar:

theta=linspace(0,2*pi);

r=cos(4*theta);

polar(theta,r);

心形线:

r=a*(1+cos(theta))

theta=linspace(0,2*pi);

r=(1+cos(theta));

polar(theta,r)

对於大量的资料,我们可用hist来显示资料的分布情况和统计特性。

下面几个命令可用来验证randn产生的高斯乱数分 :

x=randn(5000,1);%产生5000个μ=0,σ=1的高斯乱数

hist(x,20);%20代表长条的个数

rose和hist很接近,只不过是将资料大小视为角度,资料个数视为距离,并用极坐标绘制表示:

x=randn(1000,1);

rose(x);

stairs可画出阶梯图:

x=linspace(0,10,50);

y=sin(x).*exp(-x/3);

stairs(x,y);

stems可产生针状图,常被用来绘制数位讯号:

x=linspace(0,10,50);

y=sin(x).*exp(-x/3);

stem(x,y);

stairs将资料点视为多边行顶点,并将此多边行涂上颜色:

x=linspace(0,10,50);

y=sin(x).*exp(-x/3);

fill(x,y,'b');%'b'为蓝色

feather将每一个资料点视复数,并以箭号画出:

theta=linspace(0,2*pi,20);

z=cos(theta)+i*sin(theta);

feather(z);

compass和feather很接近,只是每个箭号的起点都在圆点:

theta=linspace(0,2*pi,20);

z=cos(theta)+i*sin(theta);

compass(z);

 

二、三维立体图形

三维绘图函数

contour

二维等值线图,即从上向下看contour3等值线图

contour3

等值线图

fill3

填充的多边形

mesh

网格图

meshc

具有基本等值线图的网格图

meshz

有零平面的网格图

pcolor

二维伪彩色绘图,即从上向下看surf图

plot3

直线图

quiver

二维带方向箭头的速度图

surf

曲面图

surfc

具有基本等值线图的曲面图

surfl

带亮度的曲面图

waterfall

无交叉线的网格图

三维绘图工具

axis

修正坐标轴属性

clf

清除图形窗口

clabel

放置等值线标签

close

关闭图形窗口

figure

创建或选择图形窗口

getframe

捕捉动画桢

grid

放置网格

griddata

对画图用的数据进行内插

hidden

隐蔽网格图线条

hold

保留当前图形

meshgrid

产生三维绘图数据

movie

放动画

moviein

创建桢矩阵,存储动画

shading

在曲面图和伪彩色图中用分块、平滑和插值加阴影

subplot

在图形窗口内画子图

text

在指定的位置放文本

title

放置标题

view

改变图形的视角

xlabel

放置x轴标记

ylabel

放置y轴标记

zlabel

放置z轴标记

函数view

view(az,el)

设置视图的方位角az和仰角el

view([az,el])

view([x,y,z])

在笛卡儿坐标系中沿向量[x,y,z]正视原点设置视图,例如view([001])=view(0,90)

view

(2)

设置缺省的二维视图,az=0,el=90

view(3)

设置缺省的三维视图,az=-37.5,el=30

[az,el]=view

返回当前的方位角az和仰角el

view(T)

用一个4×4的转置矩阵T来设置视图

T=view

返回当前的4×4转置矩阵

空间曲线和空间曲面图

plot3命令将绘制二维图形的函数plot的特性扩展到三维空间图形。

函数格式除了包括第三维的信息(比如Z方向)之外,与二维函数plot相同。

plot3一般语法调用格式是plot3(x,y,z,S),这里x,y和z是向量或矩阵,S是可选的字符串,用来指定颜色、标记符号和/或线形(s可以省略)。

三维螺旋线例子:

t=0:

pi/50:

10*pi;

plot3(sin(t),cos(t),t)

grid%添加网格

plot3可画出空间中的曲线:

t=linspace(0,20*pi,501);

plot3(t.*sin(t),t.*cos(t),t);%注意用点乘.*

亦可同时画出两条空间中的曲线:

t=linspace(0,10*pi,501);

plot3(t.*sin(t),t.*cos(t),t,t.*sin(t),t.*cos(t),-t);

正弦曲线图

x=linspace(0,3*pi);%0到3pi间100个数据点

z1=sin(x);

z2=sin(2*x);

z3=sin(3*x);

y1=zeros(100);%含有100个数据的0数组

y3=zeros(100);

y2=y3/2;

plot3(x,y1,z1,x,y2,z2,x,y3,z3);

利用在x-y平面的矩形网格点上的z轴坐标值,MATLAB定义了一个网格曲面。

MATLAB通过将邻接的点用直线连接起来形成网状曲面,其结果好象在数据点有结点的鱼网。

mesh可画出立体网状图.

画出由函数

形成的立体网状图:

X=-7.5:

0.4:

7.5;

Y=X;

[X,Y]=meshgrid(X,Y);

R=sqrt(X.^2+Y.^2)+eps;

Z=sin(R)./R;

mesh(X,Y,Z)

画出由函数

形成的立体网状图:

x=linspace(-2,2,25);%在x轴上取25点

y=linspace(-2,2,25);%在y轴上取25点

[xx,yy]=meshgrid(x,y);%xx和yy都是25x25的矩阵

zz=xx.*exp(-xx.^2-yy.^2);%计算函数值,zz也是25x25的矩阵

mesh(xx,yy,zz);%画出立体网状图

 

曲面图,除了各线条之间的空档(称作补片)用颜色填充以外,和网格图看起来是一样的。

这种图一般使用函数surf来绘制。

surf和mesh的用法类似:

x=linspace(-2,2,25);%在x轴上取25点

y=linspace(-2,2,25);%在y轴上取25点

[xx,yy]=meshgrid(x,y);%xx和yy都是25x25的矩阵

zz=xx.*exp(-xx.^2-yy.^2);%计算函数值,zz也是25x25的矩阵

surf(xx,yy,zz);%画出立体曲面图

 

MATLAB提供了一个peaks函数,可产生一个凹凸有致的曲面,包含了三个局部极大点及三个局部极小点,其方程式为:

要画出此函数的最快方法即是直接键入peaks:

peaks

z=3*(1-x).^2.*exp(-(x.^2)-(y+1).^2)...

-10*(x/5-x.^3-y.^5).*exp(-x.^2-y.^2)...

-1/3*exp(-(x+1).^2-y.^2)

我们亦可对peaks函数取点,再以各种不同方法进行绘图。

meshz可将曲面加上围裙:

[x,y,z]=peaks;

meshz(x,y,z);

waterfall可在x方向或y方向产生水流效果:

[x,y,z]=peaks;

waterfall(x,y,z);

下列命令产生在y方向的水流效果:

[x,y,z]=peaks;

waterfall(x',y',z');

 

meshc同时画出网状图与等高线:

[x,y,z]=peaks;

meshc(x,y,z);

surfc同时画出曲面图与等高线:

[x,y,z]=peaks;

surfc(x,y,z);

contour3画出曲面在三度空间中的等高线:

contour3(peaks,20);

contour画出曲面等高线在XY平面的投影:

contour(peaks,20);

 

剔透玲珑球

[X0,Y0,Z0]=sphere(30);%产生单位球面的三维坐标

X=2*X0;Y=2*Y0;Z=2*Z0;%产生半径为2的球面的三维坐标

surf(X0,Y0,Z0);%画单位球面

shadinginterp%采用插补明暗处理

holdon;mesh(X,Y,Z);holdoff%画外球面

hiddenoff%产生透视效果

axisoff%不显示坐标轴

 

动态图形动画效果彗星状轨迹图

【*例】简单二维示例。

(请指令窗中运行以下指令)

n=10;

t=n*pi*(0:

0.0005:

1);

x=sin(t);y=cos(t);

plot(x,y,'g');

holdon;comet(x,y,0.02);holdoff

【*例】三维-动态螺旋线图

z=0:

0.1:

100;

x=sin(z);

y=cos(z).*10;

comet3(x,y,z)

 

【*例】卫星返回地球的运动轨线示意。

R0=1;%以地球半径为一个单位

a=12*R0;b=9*R0;T0=2*pi;%T0是轨道周期

T=5*T0;dt=pi/100;t=[0:

dt:

T]';

f=sqrt(a^2-b^2);%地球与另一焦点的距离

th=12.5*pi/180;%卫星轨道与x-y平面的倾角

E=exp(-t/20);%轨道收缩率

x=E.*(a*cos(t)-f);y=E.*(b*cos(th)*sin(t));z=E.*(b*sin(th)*sin(t));

plot3(x,y,z,'g')%画全程轨线

[X,Y,Z]=sphere(30);X=R0*X;Y=R0*Y;Z=R0*Z;%获得单位球坐标

gridon,holdon,surf(X,Y,Z),shadinginterp%画地球

x1=-18*R0;x2=6*R0;y1=-12*R0;y2=12*R0;z1=-6*R0;z2=6*R0;

axis([x1x2y1y2z1z2])%确定坐标范围

view([11737]),comet3(x,y,z,0.02),holdoff%设视角、画运动轨线

图7.4.3.1-1卫星返回地球轨线示意

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2