当前位置:文档之家› 第四讲 、Matlab绘图

第四讲 、Matlab绘图

第四讲 、Matlab绘图
第四讲 、Matlab绘图

第四讲 Matlab绘图

4.1 二维图形

4.2 数据分析图

4.3 三维图形

4.1 二维图形

1、基本图形的绘制

plot(x,y) 对向量x绘制向量y。以x为横坐标,y为纵坐标,按照坐标(xi ,yi)的有序排列绘制曲线。

plot(...,str) 使用字符串str指定的颜色和线型进行绘图。

例1:>> x=-pi:0.02*pi:pi;

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

>> plot(x,y)

ezplot(f,xmin,xmax) 绘制函数f在区间[xmin,xmax]上的图形。如果省略xmin和xmax参数,区间将大概取在-2pi——2pi之间。由于ezplot命令使用算法来判断该函数变化显著的区间,因此区间的选取是不固定的。

例2:>> ezplot('sin(x).*x.^2')

2、图形控制

figure(gcf) 显示当前图形窗口。只键入figure命令则创建新的图形窗口;

shg 显示当前图形窗口,等价于figure(gcf)。

hold on 保持当前图形。允许在当前图形状态下,使用同样的缩放比例加入另一个图形。

hold off 释放图形窗口,这样下一个图形将称为当前图形。这是缺省状态。

hold 在hold on和hold off之间进行切换。

subplot(m,n,p) 将图形窗口分割成m行n列,并设置p所指定的子窗口为当前窗口。子窗口按行由左至右,由上至下进行编号。这一命令在Matlab的当前版本中也被写作subplot(mnp)。axis…)用行向量中给出的值,设置坐标轴的最大和最小值。对于二维图形,该向量中含有元素: [xmin, xmax, ymin, ymax]。对于三维图形,是[xmin, xmax, ymin, ymax,zmin, zmax]。axis ~~ ~~的不同参数将给出不同的结果:

1.manual 固定坐标轴刻度。如果当前图形窗口为hold on状态,则后面的图形将采用同样的刻度

2.auto 把坐标轴刻度重新设置为缺省状态值。

3.equal 设置x轴和y轴为同样的刻度增量。

4.tight 以数据的大小为坐标轴的范围。

5.ij 翻转y轴,使得正数在下,负数在上。

6.xy 复位y轴,使正数在上。

7.off 坐标轴消隐。

8.on 绘制坐标轴。

title(txt) 在图形窗口顶端的中间位置输出字符串txt作为标题。

xlabel(txt) 在x轴下的中间位置输出字符串txt作为标注。

ylabel(txt) 在y轴边上的中间位置输出字符串txt作为标注。

zlabel(txt) 在z轴边上的中间位置输出字符串txt作为标注。

text(x,y,txt) 在图形窗口的(x,y)处写字符串txt。坐标x和y按照与所绘制图形相同的刻度给出。对于向量x和y,字符串txt写在(xi,yi)的位置上。如果t x t是一个字符串向量,即一个字符矩阵,且与x, y有相同的行数,则第i行的字符串将写在图形窗口的(xi,yi)的位置上。

gtext(txt) 通过使用鼠标或方向键,移动图形窗口中的十字光标,让用户将字串t xt放置在图形窗口中。当十字光标走到所期望的位置时,用户按下任意键或鼠标上的任意按钮,字符串将会写入在窗口中。

legend(str1,str2 , . . .pos)在当前图上输出图例,并用说明性字符串str1,str2等作为标 注。如果指定参数pos ,则图例将按下面所述放置: -1:将图例框放在坐标轴外的右侧。 0:将图例框放在坐标轴内侧。 1:将图例框放在右上角。 2:将图例框放在左上角。 3:将图例框放在左下角。 4:将图例框放在右下角。

legend off 从当前图形中清除图例。 [x,y]=ginput 从图形窗口中读取坐标值。在图形窗口中放置一个光标,用户可以通过鼠标或方向键对光标进行定位,并且通过按下鼠标按钮或键盘上任意键,将坐标值传递到M AT L A B 中。这些坐标值保存在向量x 和y 中。这一过程直到按下‘回车’键才终止。

-6

-4

-2

02

4

6

-4-3-2-101

234sin(x)/x

x-axis

y -a x i s

>> t=-2*pi:0.02*pi:2*pi; >> x=t+(t==0)*eps; >> y=sin(x)./x; >> plot(x,y,'r') >> title('sin(x)/x') >> xlabel('x-axis') >> ylabel('y-axis') >> text(0,1,'summit') >> hold on >> sy=sin(t); >> cy=cos(t);

>> plot(t,sy ,'b',t,cy,'k')

>> legend('sin(x)/x','sin(x)','cos(x)')

>> axis equal

4.2数据分析图

[m,y]=hist(x) 在x的最大值和最小值之间等分成10个区间,在这个区间上画出统计频数直方图。向量y 的元素为将min(x) 和max(x)之间分成10个等间距的值,向量m为在每个区间内值的个数。

[m,y]=hist(x,n) 在n个等间距区间上画统计频数直方图。

>> y=randn(10000,1);

>> [n,m]=hist(y,30)

n =

Columns 1 through 3

1 2 2

Columns 4 through 6

10 11 23

Columns 7 through 9

41 74 143

Columns 10 through 12

259 384 505

Columns 13 through 15

660 870 990

Columns 16 through 18

989 1010 969

Columns 19 through 21

899 701 543

Columns 22 through 24

349 226 144

Columns 25 through 27

94 52 26

Columns 28 through 30

10 11 2

m =

Columns 1 through 4

-4.0833 -3.8198 -3.5563 -3.2929

Columns 5 through 8

-3.0294 -2.7659 -2.5024 -2.2389

Columns 9 through 12

-1.9754 -1.7119 -1.4484 -1.1850

Columns 13 through 16

-0.9215 -0.6580 -0.3945 -0.1310

Columns 17 through 20

0.1325 0.3960 0.6594 0.9229

Columns 21 through 24

1.1864 1.4499 1.7134 1.9769

Columns 25 through 28

2.2404 2.5038 2.7673

3.0308

Columns 29 through 30

3.2943 3.5578

>> hist(y,30)

-5

-4-3-2-101234

0200

400

600

800

1000

1200

bar(x,y) 在由向量x 指定的位置上画y 的条形图。

-15

-10-5051015

>> x=-10:10; >> y=x.^2;

>> bar(x,y)

pie(x,explode) 绘制向量x 的饼图。如果sum(x)< 1,则将给出一个不完全的饼图。向量explode 与向量x 的维数相同,并且explode 中不为零的元素所对应的相应部分将从饼图中独立出来。 >> subplot(221)

>> pie([0.1 0.2 0.3 0.4])

>> title('pie([0.1 0.2 0.3 0.4])') >> subplot(222)

>> pie([0.1 0.2 0.3 0.3])

>> title('pie([0.1 0.2 0.3 0.3])') >> subplot(223) >> pie([1 2 3 3])

>> title('pie([1 2 3 3])') >> subplot(224)

>> pie([0.1 0.2 0.3 0.3],[0 0 1 0])

>> title('pie([0.1 0.2 0.3 0.3],[0 0 1 0])')

pie([0.1 0.2 0.3 0.4])

pie([0.1 0.2 0.3 0.3])

33%

pie([1 2 3 3])

pie([0.1 0.2 0.3 0.3],[0 0 1 0])

4.2三维图形

[U,V]=meshgrid(x,y) 用来自向量x 和y 的x 坐标和y 坐标形成网格,并生成矩阵。长度为n 的向量 x 包含升序排列的x 坐标,而长度为m 的向量y 包含升序排列的y 坐标,分别复制m 和n 次形成两个m ×n 的矩阵U 和V 。这些矩阵表示整个矩形区域内的x 和y 坐标。 [U,V]=meshgrid(x)等价于[U,V]=meshgrid(x,x)。 >> x=[-1 0 1]; >> y=[1 2 3 4];

>> [X,Y]=meshgrid(x,y) X =

-1 0 1

-1 0 1 -1 0 1 -1 0 1 Y =

1 1 1

2 2 2

3 3 3

4 4 4 >> Z=zeros(size(X)); >> mesh(X,Y ,Z) >> colormap([0 0 0])

-1

1

plot3(x,y,z) 用(xi,yi,zi)所定义的点绘制图形。向量x 、y 和z 必须为等长度的。 plot3(x,y,z,str) 使用字符串str 确定的线型和颜色按照上面所述的方法绘制图形。

plot3(x1,y1,z1,str1,x2,y2,z2,str2,...)用字符串str1确定的线型和颜色对x1,y1,z1绘图,用字符串str2确定的线型和颜色对x2,y2,z2绘图...。如果省略str1,str2,...,MATLA B 将自动选择线型和颜色。

>> t=0:0.02*pi:10*pi; >> x=3*cos(t); >> y=5*sin(t); >> z=t;

>> plot3(x,y,z,'r')

-4

4

mesh(X,Y,Z) 将矩阵Z 中的各个元素作为矩形网格上的高度,对这些值绘图,并且将相邻的点连 接形成三维网格表面图。颜色由高度,即Z 中的元素指定。

surf(X,Y,Z) 绘制出由坐标(Xij,Yij,Zij)确定的表面图形。如果X 和Y 分别是长度为m 和n 的向 量,那么,Z 必须为m ×n 的矩阵,并且表面是由(Xj,Yi,Zij)来定义的。 >> t=-2:0.2:2;

>> [x,y]=meshgrid(t); >> z=x.^2-y.^2; >> mesh(x,y,z)

>> colormap([0 0 0])

-2

2

>> t=-2:0.2:2;

>> [x,y]=meshgrid(t); >> z=x.^2-y.^2; >> surf(x,y,z)

-2

2

练习:用plot 命令绘制函数1

)ln()(*)(2

2

+=

x x sh x x y 的图像(注意定义域)。加标题,x 轴y 轴标注,

在点))2(,2()),2(,2(--y y 处用text 命令加标注。

将绘图窗口分成两行两列四个子窗口,第一个窗口用mesh 绘制2

2

y

x z +=

,第二个

窗口用surf 绘制2

2y x z +=,

第三个窗口用plot3绘制??

???===t z t t y t t x 2)sin()cos(,第四个窗口用ezplot 绘制122=+y x 。

matlab基础作图实例

实验三 MATLAB 的绘图 一、实验目的:掌握利用MATLAB 画曲线和曲面。 二、实验内容: 1、 在不同图形中绘制下面三个函数t ∈[0,4π]的图象,3个图形分别是 figure(1),figure(2),figure(3)。 ) sin(41.0321t e y t y t y t -== =π 说明:y 1 线型:红色实线,y 2 线型:黑色虚线,y 3: 线型:兰色点线 分别进行坐标标注,分别向图形中添加标题‘函数1’,‘函数2’, ‘函数3’ 解答: 源程序与图像: t=0:0.1:4*pi; y_1=t; y_2=sqrt(t); y_3=4*pi.*exp(-0.1*t).*sin(t); figure(1) plot(t,y_1,'-r'); title('函数1'); xlabel('t');ylabel('y_1'); figure(2) plot(t,y_2,'--k'); title('函数2'); xlabel('t');ylabel('y_2'); figure(3) plot(t,y_3,':b'); title('函数3'); xlabel('t');ylabel('y_3'); 246 8101214 02468 10 12 14 函数1 t y 1

0246 8101214 0.511.522.533.54函数2 t y 2 2 4 6 8 10 12 14 -8-6-4-2024 681012函数3 t y 3 2、 在同一坐标系下绘制下面三个函数在t ∈[0,4π]的图象。 (用2种方法来画图,其中之一使用hold on ) 使用text 在图形适当的位置标注“函数1”“函数2”,“函数3” 使用gtext 重复上面的标注,注意体会gtext 和text 之间的区别 解答: 方法一: 程序与图形: t=0:0.1:4*pi; y_1=t; y_2=sqrt(t); y_3=4*pi.*exp(-0.1*t).*sin(t); figure(1) plot(t,y_1,'-r'); gtext('函数1');

MATLAB中plotyy函数详解:matlab双Y轴作图

Matlab plotyy画双纵坐标图实例 x = 0::20; y1 = 200*exp*x).*sin(x); y2 = *exp*x).*sin(10*x); [AX,H1,H2] = plotyy(x,y1,x,y2,'plot'); set(AX(1),'XColor','k','YColor','b'); set(AX(2),'XColor','k','YColor','r'); HH1=get(AX(1),'Ylabel'); set(HH1,'String','Left Y-axis'); set(HH1,'color','b'); HH2=get(AX(2),'Ylabel'); set(HH2,'String','Right Y-axis'); set(HH2,'color','r'); set(H1,'LineStyle','-'); set(H1,'color','b'); set(H2,'LineStyle',':'); set(H2,'color','r'); legend([H1,H2],{'y1 = 200*exp*x).*sin(x)';'y2 = *exp*x).*sin(10*x)'}); xlabel('Zero to 20 musec.');

title('Labeling plotyy'); Q:右边用蓝色圈起来的tick能去掉吗由于用plotyy画图,为了使图尽量地显示出来,用了set(AX(1),'YLimMode','auto'),但这样可能会导致左边AX(1)和右边AX(2)的tick的间距不一样,影响美观。或者说能不能使plotyy画出的图两边的tick间距是一样的,这样在图形右边的tick就会重合在一起. A:如果只是想让plotyy的图美一些,可以使用其如下形式的调用方式: [AX,H1,H2] = plotyy(...) 其中AX(2)就是右边Axes对象的句柄,拿到它以后就可以set或者get来处理了,也可以把其ytick关掉。 A:也可以用line语句来画,就没有左边和上边的线了。 Q:plotyy(X1,Y1,X2,Y2,FUN1,FUN2),FUN1和FUN2应该怎么写 A:这两个FUN代表plotyy不一定要用两个plot,比如下面的例子,一条曲线用plot,一条用semilogy x1=1::100; x2=x1;

MATLAB函数画图

MATLAB函数画图(2) MATLAB不但擅长於矩阵相关的数值运算,也适合用在各种科学目视表示(Scientific visualization)。本节将介绍MA TLAB基本xy平面及xyz空间的各项绘图命令,包含一维曲线及二维曲面的绘制、列印及存档。 plot是绘制一维曲线的基本函数,但在使用此函数之前,我们需先定义曲线上每一点的x及y座标。下例可画出一条正弦曲线: close all; x=linspace(0, 2*pi, 100); % 100个点的x座标 y=sin(x); % 对应的y座标 plot(x,y); ==================================================== 小整理:MATLAB基本绘图函数 plot: x轴和y轴均为线性刻度(Linear scale) loglog: x轴和y轴均为对数刻度(Logarithmic scale) semilogx: x轴为对数刻度,y轴为线性刻度 semilogy: x轴为线性刻度,y轴为对数刻度 ==================================================== 若要画出多条曲线,只需将座标对依次放入plot函数即可: plot(x, sin(x), x, cos(x)); 若要改变颜色,在座标对后面加上相关字串即可: plot(x, sin(x), 'c', x, cos(x), 'g'); 若要同时改变颜色及图线型态(Line style),也是在座标对后面加上相 关字串即可: plot(x, sin(x), 'co', x, cos(x), 'g*'); ==================================================== 小整理:plot绘图函数的叁数 字元颜色字元图线型态 y 黄色. 点 k 黑色o 圆 w 白色x x b 蓝色+ + g 绿色* * r 红色- 实线 c 亮青色: 点线 m 锰紫色-. 点虚线 -- 虚线 ==================================================== 图形完成后,我们可用axis([xmin,xmax,ymin,ymax])函数来调整图轴的范围: axis([0, 6, -1.2, 1.2]); 此外,MA TLAB也可对图形加上各种注解与处理: xlabel('Input Value'); % x轴注解 ylabel('Function Value'); % y轴注解

MATLAB画图入门篇--各种基本图形绘制的函数与实例

MATLAB画图入门篇--各种基本图形绘制的函数与实例【来自网络】 一.二维图形(Two dimensional plotting) 1.基本绘图函数(Basic plotting function):Plot,semilogx,semilogy,loglog,polar,plotyy (1).单矢量绘图(single vector plotting):plot(y),矢量y的元素与y元素下标之间在线性坐标下的关系曲线。 例1:单矢量绘图 y=[00.62.358.311.71517.719.420];plot(y) 可以在图形中加标注和网格, 例2:给例1的图形加网格和标注。 y=[00.62.358.311.71517.719.420];plot(y) title('简单绘图举例');xlabel('单元下标');ylabel('给定的矢量');grid (2).双矢量绘图(Double vector plotting):如x和y是同样长度的矢量,plot(x,y)命令将绘制y元素对应于x元素的xy曲线图。 例:双矢量绘图。 x=0:0.05:4*pi;y=sin(x);plot(x,y) (3).对数坐标绘图(ploting in logarithm coordinate):x轴对数semilogx,y轴对数semilogy,双对数loglog, 例:绘制数组y的线性坐标图和三种对数坐标图。 y=[00.62.358.311.71517.719.420]; subplot(2,2,1);plot(y);subplot(2,2,2);semilogx(y) subplot(2,2,3);semilogy(y);subplot(2,2,4);loglog(y) (4)极坐标绘图(Plotting in polar coordinate): polar(theta,rho)theta—角度,rho—半径 例:建立简单的极坐标图形。 t=0:.01:2*pi;polar(t,sin(2*t).*cos(2*t)) 2.多重曲线绘图(Multiple curve plotting) (1)一组变量绘图(A group variable plotting) plot(x,y) (a)x为矢量,y为矩阵时plot(x,y)用不同的颜色绘制y矩阵中各行或列对应于x的曲线。 例1: x=0:pi/50:2*pi;y(1,:)=sin(x);y(2,:)=0.6*sin(x);y(3,:)=0.3*sin(x);plot(x,y) (b)x为矩阵,y为矢量时绘图规则与(a)的类似,只是将x中的每一行或列对应于y进行绘图。。 例2: x(1,:)=0:pi/50:2*pi;x(2,:)=pi/4:pi/50:2*pi+pi/4;x(3,:)=pi/2:pi/50:2*pi+pi/2; y=sin(x(1,:));plot(x,y) (c)x和y是同样大小的矩阵时,plot(x,y)绘制y矩阵中各列对应于x各列的图形。 例3: x(:,1)=[0:pi/50:2*pi]';x(:,2)=[pi/4:pi/50:2*pi+pi/4]';x(:,3)=[pi/2:pi/50:2*pi+pi/2]'; y(:,1)=sin(x(:,1));y(:,2)=0.6*sin(x(:,1));y(:,3)=0.3*sin(x(:,1)); plot(x,y) 这里x和y的尺寸都是101×3,所以画出每条都是101点组成的三条曲线。如行列转置后就会画出101条曲线,每条线

MATLAB绘图功能大全

Matlab绘图 强大的绘图功能是Matlab的特点之一,Matlab提供了一系列的绘图函数,用户不需要过多的考虑绘图的细节,只需要给出一些基本参数就能得到所需图形,这类函数称为高层绘图函数。此外,Matlab 还提供了直接对图形句柄进行操作的低层绘图操作。这类操作将图形的每个图形元素(如坐标轴、曲线、文字等)看做一个独立的对象,系统给每个对象分配一个句柄,可以通过句柄对该图形元素进行操作,而不影响其他部分。 本章介绍绘制二维和三维图形的高层绘图函数以及其他图形控制函数的使用方法,在此基础上,再介绍可以操作和控制各种图形对象的低层绘图操作。 一、二维绘图 二维图形是将平面坐标上的数据点连接起来的平面图形。可以采用不同的坐标系,如直角坐标、对数坐标、极坐标等。二维图形的绘制是其他绘图操作的基础。 (一)绘制二维曲线的基本函数 在Matlab中,最基本而且应用最为广泛的绘图函数为plot,利用它可以在二维平面上绘制出不同的曲线。 1.plot函数的基本用法

plot函数用于绘制二维平面上的线性坐标曲线图,要提供一组x 坐标和对应的y坐标,可以绘制分别以x和y为横、纵坐标的二维曲线。plot函数的应用格式 plot(x,y) 其中x,y为长度相同的向量,存储x坐标和y坐标。 例51 在[0 , 2pi]区间,绘制曲线 程序如下:在命令窗口中输入以下命令 >> x=0:pi/100:2*pi; >> y=2*exp(-0.5*x).*sin(2*pi*x); >> plot(x,y) 程序执行后,打开一个图形窗口,在其中绘制出如下曲线 注意:指数函数和正弦函数之间要用点乘运算,因为二者是向量。 例52 绘制曲线 这是以参数形式给出的曲线方程,只要给定参数向量,再分别求出x,y向量即可输出曲线: >> t=-pi:pi/100:pi; >> x=t.*cos(3*t); >> y=t.*sin(t).*sin(t); >> plot(x,y) 程序执行后,打开一个图形窗口,在其中绘制出如下曲线 以上提到plot函数的自变量x,y为长度相同的向量,这是最常见、最基本的用法。实际应用中还有一些变化。

matlab绘图详解

一.二维图形(Two dimensional plotting) 1. 基本绘图函数(Basic plotting function):Plot, semilogx, semilogy, loglog, polar, plotyy (1). 单矢量绘图(single vector plotting):plot(y),矢量y的元素与y元素下标之间在线性坐标下的关系曲线。 例1:单矢量绘图 y=[0 0.6 2.3 5 8.3 11.7 15 17.7 19.4 20]; plot(y) 可以在图形中加标注和网格, 例2:给例1 的图形加网格和标注。 y=[0 0.6 2.3 5 8.3 11.7 15 17.7 19.4 20]; plot(y) title('简单绘图举例'); xlabel('单元下标'); ylabel('给定的矢量'); grid (2). 双矢量绘图(Double vector plotting):如x和y是同样长度的矢量, plot(x,y)命令将绘制y元素对应于x元素的xy曲线图。 例:双矢量绘图。 x=0:0.05:4*pi; y=sin(x); plot(x,y) (3). 对数坐标绘图(ploting in logarithm coordinate): x轴对数 semilogx, y轴对数semilogy, 双对数loglog, 例:绘制数组y的线性坐标图和三种对数坐标图。 y=[0 0.6 2.3 5 8.3 11.7 15 17.7 19.4 20]; subplot(2,2,1); plot(y); subplot(2,2,2); semilogx(y) subplot(2,2,3); semilogy(y); subplot(2,2,4); loglog(y) (4)极坐标绘图( Plotting in polar coordinate): polar(theta,rho) theta—角度, rho—半径 例:建立简单的极坐标图形。 t=0:.01:2*pi; polar(t,sin(2*t).*cos(2*t)) 2. 多重曲线绘图(Multiple curve plotting) (1)一组变量绘图(A group variable plotting) plot(x,y) (a) x为矢量,y为矩阵时plot(x,y)用不同的颜色绘制y矩阵中各行或列对应于x的曲线。例1: x=0:pi/50:2*pi; y(1,: )=sin(x); y(2,:) =0.6*sin(x); y(3, :)=0.3*sin(x); plot(x,y) (b) x为矩阵,y为矢量时绘图规则与(a)的类似,只是将x中的每一行或列对应于y进行绘图。。 例 2: x(1,: )=0:pi/50:2*pi; x(2,: )=pi/4:pi/50:2*pi+pi/4; x(3,: )=pi/2:pi/50:2*pi+pi/2; y=sin(x(1,: )); plot(x,y)

第四讲 、Matlab绘图

第四讲 Matlab绘图 4.1 二维图形 4.2 数据分析图 4.3 三维图形 4.1 二维图形 1、基本图形的绘制 plot(x,y) 对向量x绘制向量y。以x为横坐标,y为纵坐标,按照坐标(xi ,yi)的有序排列绘制曲线。 plot(...,str) 使用字符串str指定的颜色和线型进行绘图。 例1:>> x=-pi:0.02*pi:pi; >> y=sin(x).*x.^2; >> plot(x,y) ezplot(f,xmin,xmax) 绘制函数f在区间[xmin,xmax]上的图形。如果省略xmin和xmax参数,区间将大概取在-2pi——2pi之间。由于ezplot命令使用算法来判断该函数变化显著的区间,因此区间的选取是不固定的。 例2:>> ezplot('sin(x).*x.^2') 2、图形控制 figure(gcf) 显示当前图形窗口。只键入figure命令则创建新的图形窗口; shg 显示当前图形窗口,等价于figure(gcf)。 hold on 保持当前图形。允许在当前图形状态下,使用同样的缩放比例加入另一个图形。 hold off 释放图形窗口,这样下一个图形将称为当前图形。这是缺省状态。 hold 在hold on和hold off之间进行切换。 subplot(m,n,p) 将图形窗口分割成m行n列,并设置p所指定的子窗口为当前窗口。子窗口按行由左至右,由上至下进行编号。这一命令在Matlab的当前版本中也被写作subplot(mnp)。axis…)用行向量中给出的值,设置坐标轴的最大和最小值。对于二维图形,该向量中含有元素: [xmin, xmax, ymin, ymax]。对于三维图形,是[xmin, xmax, ymin, ymax,zmin, zmax]。axis ~~ ~~的不同参数将给出不同的结果: 1.manual 固定坐标轴刻度。如果当前图形窗口为hold on状态,则后面的图形将采用同样的刻度 2.auto 把坐标轴刻度重新设置为缺省状态值。 3.equal 设置x轴和y轴为同样的刻度增量。 4.tight 以数据的大小为坐标轴的范围。 5.ij 翻转y轴,使得正数在下,负数在上。 6.xy 复位y轴,使正数在上。 7.off 坐标轴消隐。 8.on 绘制坐标轴。 title(txt) 在图形窗口顶端的中间位置输出字符串txt作为标题。 xlabel(txt) 在x轴下的中间位置输出字符串txt作为标注。 ylabel(txt) 在y轴边上的中间位置输出字符串txt作为标注。 zlabel(txt) 在z轴边上的中间位置输出字符串txt作为标注。 text(x,y,txt) 在图形窗口的(x,y)处写字符串txt。坐标x和y按照与所绘制图形相同的刻度给出。对于向量x和y,字符串txt写在(xi,yi)的位置上。如果t x t是一个字符串向量,即一个字符矩阵,且与x, y有相同的行数,则第i行的字符串将写在图形窗口的(xi,yi)的位置上。 gtext(txt) 通过使用鼠标或方向键,移动图形窗口中的十字光标,让用户将字串t xt放置在图形窗口中。当十字光标走到所期望的位置时,用户按下任意键或鼠标上的任意按钮,字符串将会写入在窗口中。

做一个实例,搞定MATLAB界面编程

做一个实例,搞定MATLAB界面编程 2009-04-12 16:55 作者:彭军 带插图版本的pdf格式文件,请下载: https://www.doczj.com/doc/4012454603.html,/source/1144420 一个实例搞定MATLAB界面编程 作者:彭军 邮件:pengjun@https://www.doczj.com/doc/4012454603.html, 博客:https://www.doczj.com/doc/4012454603.html,/pengjun 下面请跟我一步一步做一个图像处理的程序,如果您坚持做完这个实例,我想MATLAB界面编程对您而言,就没有什么难度了。当然,我这里说的是,您首先要有一定的MATLAB编程基础。还有,我的MATLAB版本是2008a。在2008a以前的版本中没有工具栏编辑器,如果需要工具栏要手动写程序,这个我就不多讲了。好了,废话少说,跟我来吧! 1、在MATLAB的命令窗口(Command Window)中运行guide命令,来打开GUIDE 界面,如下: 2、然后,选择空模板(Blang GUI),点击OK,即可打开GUIDE的设计界面,如下: 3、点击工具栏上的菜单编辑器(Menu Editor),打开菜单编辑器,如下: 4、在Menu Bar中新建一个菜单项,名字为“文件”,其他设置请看下图: 5、在“文件”菜单下添加菜单项:“打开”,“保存”,“退出”。见下图:如果需要在菜单项“退出”上面添加一个分割线的话,选中“Separator above this item”就行了。 保存我的界面为pjimage.fig. 保存完毕之后,会自动打开pjimage.m文件,而我们所有的程序都是要写在这个M文件里面的。在编程中,我们的每一个鼠标动作都对应一个Callback函数。那么我们的菜单项也是如此的。 在界面上,单击鼠标右键选择“Property Inspector”,即可打开属性窗口。当我们点击不同的控件时,其对应的属性都会在这里显示,我们可以进行修改。最主要的属性莫过于Tag属性和String属性。 设置当前Figure窗口的Tag属性为:figure_pjimage,窗口的标题(Name属性)为:图像处理实例。如下: 然后,点击工具栏的保存按钮。之后,点击工具栏的运行按钮(Run Figure)。注意,工具栏的图标都会有提示的,像运行按钮的提示就是Run Figure. 我们会看到如下的界面: 那说明,我们保存的.fig文件的目录不是当前目录,但是没关系啊,我们只要

第4章利用MATLAB绘制系统根轨迹

第4章 利用MATLAB 绘制系统根轨迹 一、 利用MATLAB 绘制系统根轨迹相关知识 假设闭环系统中的开环传递函数可以表示为: )()())(()())(()(021********s KG p s p s p s z s z s z s K den num K a s a s a s b b s b s K s G n m n n n n m m m m k =+???+++???++==++???++++???++=----则闭环特征方程为: 01=+den num K 特征方程的根随参数K 的变化而变化,即为闭环根轨迹。控制系统工具箱中提供了rlocus()函数,可以用来绘制给定系统的根轨迹,它的调用格式有以下几种: rlocus(num ,den) rlocus(num ,den ,K) 或者 rlocus(G) rlocus(G ,K) 以上给定命令可以在屏幕上画出根轨迹图,其中G 为开环系统G 0(s)的对象模型,K 为用户自己选择的增益向量。如果用户不给出K 向量,则该命令函数会自动选择K 向量。如果在函数调用中需要返回参数,则调用格式将引入左端变量。如 [R ,K]=rlocus(G) 此时屏幕上不显示图形,而生成变量R 和K 。 R 为根轨迹各分支线上的点构成的复数矩阵,K 向量的每一个元素对应于R 矩阵中的一行。若需要画出根轨迹,则需要采用以下命令: plot(R ,11) plot()函数里引号内的部分用于选择所绘制曲线的类型,详细内容见表1。控制系统工具箱中还有一个rlocfind()函数,该函数允许用户求取根轨迹上指定点处的开环增益值,并将该增益下所有的闭环极点显示出来。这个函数的调用格式为: [K ,P]=rlocfind(G) 这个函数运行后,图形窗口中会出现要求用户使用鼠标定位的提示,用户可以用鼠标左键点击所关心的根轨迹上的点。这样将返回一个K 变量,该变量为所选择点对应的开环增益,同时返回的P 变量则为该增益下所有的闭环极点位置。此外,该函数还将自动地将该增益下所有的闭环极点直接在根轨迹曲线上显示出来。 例4.1 已知系统的开环传递函数模型为: )() 2)(1()(0s KG s s s K s G k =++= 利用下面的MATLAB 命令可容易地验证出系统的根轨迹如图4-1所示。 >> G=tf(1,[conv([1,1],[1,2]),0]); rlocus(G); grid title(1Root_Locus Plot of G(s)=K/[s(s+1)(s+2)]1) xlabel(1Real Axis 1) % 给图形中的横坐标命名。

Matlab经典案例

1、三维曲线 >> t=0:pi/50:10*pi; >> plot3(sin(2*t),cos(2*t),t) >> axis square >> grid on 2、一窗口多图形 >> t=-2*pi:0.01:2*pi; >> subplot(3,2,1) >> plot(t,sin(t)) >> subplot(3,2,2) >> plot(t,cos(t)) >> subplot(3,2,3) >> plot(t,tan(t)) >> axis([-pi pi -100 100]) >> subplot(3,2,4) >> plot(t,cot(t)) >> axis([-pi pi -100 100]) >> subplot(3,2,5) >> plot(t,atan(t)) >> subplot(3,2,6) >> plot(t,acot(t)) 3、图形样式、标注、题字(也可以利用菜单直接 Insert) >> x=0:pi/20:2*pi; >> plot(x,sin(x),'b-.') >> hold on >> plot(x,cos(x),'r--') >> hold on >> plot(x,sin(x)-1,'g:')

>> hold on >> plot(x,cos(x)-1) >> xlabel('x'); >> xlabel('x轴'); >> ylabel('y轴'); >> title('图形样式、标注等'); >> text(pi,sin(pi),'x=\pi'); >> legend('sin(x)','cos(x)','sin(x)-1','cos(x)-1'); >> [x1,y1]=ginput(1) %利用鼠标定位查找线上某点的值x1 = 2.0893 y1 = -0.5000 >> gtext('x=2.5') %鼠标定位放置所需的值在线上 4、 >> fplot('[sin(x),cos(x),sqrt(x)-1]',[0 2*pi]) M文件:myfun.m 内容如下: function y=myfun(x) y(:,1)=sin(x); y(:,2)=cos(x); y(:,3)=x^(1/2)-1; 再运行:>> fplot('myfun',[0 2*pi]) 同样可以得到右图 5、 >> [x,y]=fplot('sin',[0 2*pi]); >> [x1,y1]=fplot('cos',[0 2*pi]); >> plot(x,y,'-r',x1,y1,'-.k') >> legend('y=sinx','y=cosx') 6、

matlab课后习题答案第四章

第4章数值运算 习题 4 及解答 1 根据题给的模拟实际测量数据的一组t和)(t y试用数值差分 diff或数值梯度gradient指令计算)(t y'曲线 y',然后把)(t y和)(t 绘制在同一张图上,观察数值求导的后果。(模拟数据从获得)〖目的〗 强调:要非常慎用数值导数计算。 练习mat数据文件中数据的获取。 实验数据求导的后果 把两条曲线绘制在同一图上的一种方法。 〖解答〗 (1)从数据文件获得数据的指令 假如文件在当前目录或搜索路径上 clear load (2)用diff求导的指令 dt=t(2)-t(1); yc=diff(y)/dt; %注意yc的长度将比y短1 plot(t,y,'b',t(2:end),yc,'r') grid on

1234567 -2-1.5-1-0.500.511.5 (3)用gradent 求导的指令(图形与上相似) dt=t(2)-t(1); yc=gradient(y)/dt; plot(t,y,'b',t,yc,'r') grid on 〖说明〗 不到万不得已,不要进行数值求导。 假若一定要计算数值导数,自变量增量dt 要取得比原有数据相对误差高1、2个量级以上。 求导会使数据中原有的噪声放大。 2 采用数值计算方法,画出dt t t x y x ? =0 sin )(在]10 ,0[区间曲线,并计算)5.4(y 。 〖提示〗 指定区间内的积分函数可用cumtrapz 指令给出。 )5.4(y 在计算要求不太高的地方可用find 指令算得。 〖目的〗

指定区间内的积分函数的数值计算法和cumtrapz 指令。 find 指令的应用。 〖解答〗 dt=1e-4; t=0:dt:10; t=t+(t==0)*eps; f=sin(t)./t; s=cumtrapz(f)*dt; plot(t,s,'LineWidth',3) ii=find(t==; s45=s(ii) s45 = 2 4 6 8 10 00.20.40.60.811.21.41.61.82 3 求函数x e x f 3sin )(=的数值积分?=π 0 )(dx x f s ,并请采用符号计 算尝试复算。 〖提示〗 数值积分均可尝试。 符号积分的局限性。

MATLAB_的两种基本绘图功能:二维平面图形和三维立体图形绘制

本节介绍MATLAB 的两种基本绘图功能:二维平面图形和三维立体图形。 5.1 二维平面图形 5.1.1 基本图形函数 plot 是绘制二维图形的最基本函数,它是针对向量或矩阵的列来绘制曲线的。也就是 说,使用plot 函数之前,必须首先定义好曲线上每一点的x 及y 坐标,常用格式为:(1)plot(x) 当x 为一向量时,以x 元素的值为纵坐标,x 的序号为横坐标值绘制 曲线。当x 为一实矩阵时,则以其序号为横坐标,按列绘制每列元素值相对于其序号的曲线,当x 为m× n 矩阵时,就由n 条曲线。 (2)plot(x,y) 以x 元素为横坐标值,y 元素为纵坐标值绘制曲线。 (3)plot(x,y1,x,y2,…) 以公共的x 元素为横坐标值,以y1,y2,…元素为纵坐标值绘制多条曲线。 例5.1.1 画出一条正弦曲线和一条余弦曲线。 >> x=0:pi/10:2*pi; >> y1=sin(x); >> y2=cos(x); >> plot(x,y1,x,y2) 图5.1.1 函数plot 绘制的正弦曲线 在绘制曲线图形时,常常采用多种颜色或线型来区分不同的数据组,MATLAB 软件专 门提供了这方面的参数选项(见表5.1.1),我们只要在每个坐标后加上相关字符串,就可实现它们的功能。 表5.1.1 绘图参数表 色彩字符颜色线型字符线型格式标记符号数据点形式标记符号数据点形式 y 黄- 实线. 点< 小于号 m 紫:点线o 圆s 正方形 c 青-. 点划线x 叉号 d 菱形 r 红- - 虚线+ 加号h 六角星 g 绿* 星号p 五角星 b 蓝v 向下三角形 w 白^ 向上三角形 k 黑> 大于号 例如,在上例中输入 >> plot(x,y1,'r+-',x,y2,'k*:')

教你如何用matlab绘图(全面)

强大的绘图功能是Matlab的特点之一,Matlab提供了一系列的绘图函数,用户不需要过多的考虑绘图的细节,只需要给出一些基本参数就能得到所需图形,这类函数称为高层绘图函数。此外,Matlab还提供了直接对图形句柄进行操作的低层绘图操作。这类操作将图形的每个图形元素(如坐标轴、曲线、文字等)看做一个独立的对象,系统给每个对象分配一个句柄,可以通过句柄对该图形元素进行操作,而不影响其他部分。 本章介绍绘制二维和三维图形的高层绘图函数以及其他图形控制函数的使用方法,在此基础上,再介绍可以操作和控制各种图形对象的低层绘图操作。 一.二维绘图 二维图形是将平面坐标上的数据点连接起来的平面图形。可以采用不同的坐标系,如直角坐标、对数坐标、极坐标等。二维图形的绘制是其他绘图操作的基础。 一.绘制二维曲线的基本函数 在Matlab中,最基本而且应用最为广泛的绘图函数为plot,利用它可以在二维平面上绘制出不同的曲线。 1.plot函数的基本用法 plot函数用于绘制二维平面上的线性坐标曲线图,要提供一组x坐标和对应的y坐标,可以绘制分别以x和y为横、纵坐标的二维曲线。plot函数的应用格式 plot(x,y) 其中x,y为长度相同的向量,存储x坐标和y坐标。 例51 在[0 , 2pi]区间,绘制曲线 程序如下:在命令窗口中输入以下命令 >> x=0:pi/100:2*pi; >> y=2*exp(-0.5*x).*sin(2*pi*x); >> plot(x,y) 程序执行后,打开一个图形窗口,在其中绘制出如下曲线 注意:指数函数和正弦函数之间要用点乘运算,因为二者是向量。 例52 绘制曲线 这是以参数形式给出的曲线方程,只要给定参数向量,再分别求出x,y向量即可输出曲线:

matlab中plot基础绘图实例

%plot基本绘图 x=0:0.1:2*pi; y=sin(x) plot(x,y) %两个参数都是矩阵 x1=0:0.1:2*pi; x2=-pi:0.1:pi; y1=sin(x) y2=cos(x) plot(x1,y1,x2,y2)%多条曲线绘制在统一坐标轴上 %plot只有一个参数 x=linspace(0,2*pi,200) y=sin(x) plot(y) y2=cos(x) y3=y+i*y2%横坐标实部为正弦,纵坐标虚部为余弦,构成一个圆形 plot(y3) axis equal%将上述图型的横纵坐标调整为相同,使得椭圆变为正圆 %plot含有多个参数 x1=linspace(0,2*pi,200) x2=linspace(0,2*pi,100) x3=linspace(0,2*pi,50) y1=cos(x1) y2=sin(x2) y3=0.01*exp(x3) plot(x1,y1,x2,y2,x3,y3)%当x1,x2,x3不同维数(点数不同)可用高方法绘制 %线性选项 x=0:0.1:2*pi; y=sin(x) plot(x,y,'r')%颜色,g为绿色,y为黄色,k为黑色,默认b为蓝色 plot(x,y,'*')%形状,*为*状,p为五角星,.为小方块 plot(x,y,'--')%--为短线,:为虚线,-.为点虚线 plot(x,y,'*r--')%可以组合使用,只需用一对单引号把要求全部括起来 %标注 x=0:0.1:2*pi; y=sin(x) plot(x,y) xlabel('x')%横坐标轴名称 ylabel('y')%纵坐标轴名称

第二讲 Matlab编程与作图

第二讲Matlab编程与作图 第一部分Matlab程序设计初步 Matlab除了指令行操作的直接交互外,作为一种高级应用软件还提供了自己的编程语言。通过编写Matlab程序,可以更加方便地调用Matlab提供的各种功能强大的函数库,使得程序能完成复杂的运算处理大量的数值数据。 1、M文件简介 Matlab提供了丰富的编程语言,使得用户可以将一连串的命令写入文件,然后使用简单的函数来执行这些命令。文件被保存为文本文件,后缀为.m,比如说dblquad.m,因此Matlab的程序通常被称为M 文件。 M文件是一个文本文件,可以使用各种文本编辑器对它进行编辑和修改,比如Windows操作系统自带的记事本,也可以用Matlab 内建的M文件编辑器。 M文件分为两类,一类称为脚本(Scripts),类似于批处理文件,相当于将在Matlab命令窗口中执行的一系列指令放在一个文件中,当在命令窗口调用该文件名时,则按顺序执行其中的命令集。 例:编写求10!的程序。 另一类M文件称为函数(Function),它可以接受输入变量,并将运算结果送至输出变量,类似于数学中的函数y=f(x)。 函数M文件的基本结构: function f=fact(n) 函数定义行

%Compute a factorial value. %FACT(N) returns the factorial of N, 帮助文档%usually denoted by N! %Put simply,FACT(N) is PROD(1:N), 注释 f=prod(1:n); 函数体2、运算符 关系运算符:<, <=, >, >=, = =, ~= 逻辑运算符:与(&),或(|),非(~) 例:编写分段函数 21 () 1 -1<1 321 x x f x x x x ?> ? =≤ ? ?+≤- ? %myfun1.m function y=myfun1(x) y=(x.^2).*(x>1)+(x>-1& x<=1)+(3+2*x).*(x<=-1); 注意:1.函数名与变量名的命名法则相同,要求以字母开头,后接字母或下划线;2.函数名与保存的文件名最好一致。 3、控制流 所有的计算机编程语言都提供了控制程序流执行程序的语法,Matlab也不例外。所有的控制流语法都以end 结尾。 ⑴for 循环语句 语法:for 循环变量=数组 指令组;

第四章Matlab绘图

课程名称:Matlab应用 教材:Matlab应用与实验教程 讲授人:专业技术职务:讲师 学历:研究生学位:硕士 讲授题目:Matlab绘图 所属章节:第四章计划学时:4学时 教学目的和要求: MATLAB 7语言除了有强大的矩阵处理功能之外,它的绘图功能也是相当强大的。 学习完本章之后,将学会使用MATLAB 7的图形处理功能,包括基本的绘图命令、图形的简单控制、图形窗口的编辑以及图形的高级控制等。 教学重点: ?基本的绘图命令 ?各种图形注释方法 ?三维图形的绘制方法 ?特殊一些特殊图形的绘制 ?图形的高级控制技巧 教学难点: ?基本的绘图命令 ?各种图形注释方法

?三维图形的绘制方法 教学方法: 讲授、演示 使用教具: 多媒体课件 思考题: 1. 绘制正切函数tan x在0≤x≤1上的图像,并为x轴和y轴添加标签。增量设为0.1。 2. 显示同样的图像,把sin(x) 作为第二条曲线添加到第二个图形中。 3. 生成一个列向量表示-π≤x≤π、增量取0.2的数据点。分别使用linspace设置100个点和50个点再绘制图线。 4. 为一个三维图像绘制网格,取-3≤x≤2和-5≤y≤5,增量0.1。再取-5≤x≤5和-5≤y≤5,增量为0.2试试。 5. 使用plot3函数绘制曲线x = e-t cos t、y = e-t sin t和z = t的图像,不要添加坐标轴标签,但要打开网格。 参考资料: 【1】Matlab Programming for Engineers.(Second Edition).Stephen J.Champan 【2】精通Matlab 7王正林.刘明编著.电子工业出版社

matlab之基本绘图函数

matlab之基本绘图函数 clear:清空内存中的变量; figure:强制生成一个新的个绘图窗口; syms x y t :声明变量; fplot(函数表达式,绘图区间); plot(横坐标向量,纵坐标向量,颜色/线形等参数) ezplot(函数表达式):简单的fplot,easy fplot axis([xmin xmax ymin ymax ...]):设置坐标轴显示范围 求极限 limit: 例:limit(F,x,a,left);对表达式F求极限,变量为x,从左边趋近a。 inf:正无穷; -inf:负无穷。 - 作者:博客论坛成员2005年04月5日, 星期二14:13回复(0)|引用(0)加入博采求解线形方程 solve,linsolve 例: A=[5 0 4 2;1 -1 2 1;4 1 2 0;1 1 1 1]; %矩阵的行之间用分号隔开,元素之间用逗号或空格 B=[3;1;1;0] X=zeros(4,1);%建立一个4元列向量 X=linsolve(A,B) diff(fun,var,n):对表达式fun中的变量var求n阶导数。 例如:F=sym('u(x,y)*v(x,y)'); %sym()用来定义一个符号表达式

diff(F); %matlab区分大小写 pretty(ans) %pretty():用习惯书写方式显示变量;ans是答案表达式 非线性方程求解 fsolve(fun,x0,options) 其中fun为待解方程或方程组的文件名; x0位求解方程的初始向量或矩阵; option为设置命令参数 建立文件fun.m: function y=fun(x) y=[x(1)-0.5*sin(x(1))-0.3*cos(x(2)), ... x(2) - 0.5*cos(x(1))+0.3*sin(x(2))]; >>clear;x0=[0.1,0.1];fsolve(@fun,x0,optimset('fsolve')) 注: ...为续行符 m文件必须以function为文件头,调用符为@;文件名必须与定义的函数名相同;fsolve()主要求解复杂非线性方程和方程组,求解过程是一个逼近过程。 不定积分与定积分 不定积分:int(fun,var) 例:求∫sinaxsinbxsincxdx syms a b c x y=sin(a*x)*sin(b*x)*sin(c*x); int(y,x); pretty(ans) 定积分:int(fun,var,a,b) 其中a,b分别为上下限

MATLAB绘图(第2讲)解析

第四章 MATLAB 绘图 复习: 一 、 MATLAB 绘图的一般步骤 1、 取点。 2、 输入作图命令,绘制图形。 二、二维图形的绘制 直角坐标系中,二维曲线的作图命令有:Plot 、fplot 、ezplot Plot ():plot(X,’s ’),plot(x,y,’s ’),plot(X,Y,’s ’) Fplot ():ezplot(‘f ’),ezplot(‘f ’,[xmin,xmax]), ezplot(‘x(t)’,’y(t)’,[xmin,xmax]),fplot(‘fun ’,lims) ezplot ():polar(theta ,rho ,’s ’),ezpolar(‘f ‘),ezpolar(‘f ‘ ,[a ,b]) 第六讲 二 极坐标系由一条带箭头的射线构成,射线端点称为极坐标的极点,射线称为极轴。在极坐标系中平面内的点可极角theta 、极径rho 确定,一般极径rho 被看作是极角theta 的函数,即rho=f(theta) 命令格式 说 明 polar(theta ,rho ,’s ’) 输入时theta 可换为x ,rho 可换为y ,用法与plot 命令相同 ezpolar(‘f ‘) 在默认区间()π2,0上绘制函数rho=f(theta)的图形,用法与ezplot 命令相同。 ezpolar(‘f ‘ ,[a ,b]) 在区间(a ,b )上绘制函数rho=f(theta)的图形 例:阅读并运行下列程序: 1、心形线: 一般方程形式:)cos 1(θ±=a r , )sin 1(θ±=a r (a 为常数) >> x=0:0.05*pi:2*pi; >> y=2*(1+cos(x)); >> polar(x,y)

相关主题
文本预览
相关文档 最新文档