matlab画函数图象 如何画出exp函数与三角...

Matlab常用函数
Matlab常用函数
Matlab的内部常数
&浮点相对精度
&自然对数的底数e
Matlab概率密度函数
&β概率密度函数
二项概率密度函数
&x2概率密度函数
&指数概率密度函数
&F概率密度函数
&γ概率密度函数
&几何概率密度函数
&hygepdf&&
&超几何概率密度函数
&对数正态概率密度函数
&负二项概率密度函数
&偏概率密度函数
&偏概率密度函数
&偏概率密度函数
&正态分布概率密度函数
&指定分布的概率密度函数
&泊松分布的概率密度函数
&Rayleigh概率密度函数
&t概率密度函数
&离散均匀分布概率密度函数
&连续均匀分布概率密度函数
&Weibull概率密度函数
Matlab随机数据处理函数
&corrcoef&&
&计算互相关系数
&计算协方差矩阵
&计算样本的几何平均值
&计算样本数据的调和平均值
&计算样本的四分位差
&计算样本的峭度
&计算样本数据平均绝对偏差
&计算样本的均值
&median&&&
&计算样本的中位数
&moment&&&
&计算任意阶的中心矩&prctile&计算样本的百份位数
Matlab的常用内部数学函数
自然对数,即以e为底数的对数
常用对数,即以10为底数的对数
以2为底数的x的对数
表示x的算术平方根
绝对值函数
表示实数的绝对值以及复数的模
(自变量的单位为弧度)
反三角函数
反正弦函数
反余弦函数
反正切函数
反余切函数
反正割函数
反余割函数
双曲正弦函数
双曲余弦函数
双曲正切函数
双曲余切函数
双曲正割函数
双曲余割函数
反双曲函数
反双曲正弦函数
反双曲余弦函数
反双曲正切函数
反双曲余切函数
反双曲正割函数
反双曲余割函数
求角度函数
atan2(y,x)
以坐标原点为顶点,x轴正半轴为始边,从原点到点(x,y)的射线为终边的角,其单位为弧度,范围为( ,
两个整数的最大公约数
两个整数的最小公倍数
排列组合函数
factorial(n)
阶乘函数,表示n的阶乘
求复数z的模
求复数z的辐角,其范围是( , ]
求复数z的共轭复数
求整函数与截尾函数
表示大于或等于实数x的最小整数
表示小于或等于实数x的最大整数
最接近x的整数
最大、最小函数
max([a,b,c,...])
min([a,b,c,..])
Matlab中的数学运算符&
如何在matlab中调用maple
(不用安装maple软件就可调用)
maple(’maplestatement’)
其中maplestatement
是完整的maple语句,由一条或几条命令组成,必须符合maple 的语法
maple(’function’,arg1,
其中function为maple中的函数名称,arg1,
arg2,…是函数function所用的参数。
&注:如果方法1行不通,可尝试方法2(个人经验)。
基本代数部分
如何用matlab求阶乘
factorial(n) 求n的阶乘
如何用matlab配方 
没有发现matlab有这一命令,不过我们可以调用maple的命令,调用方法如下:
首先加载maple中的student函数库,加载方法为:maple(’with(student)’)
然后运行maple中的配方命令,格式为:
maple(’completesquare(f)’)&&&&&&
把f配方,其中f为代数表达式或代数方程
maple(’completesquare(f,x)’)&&&&&&
把f按指定的变量x配方,其中f同上
maple(’completesquare(f,{x,y,...})’)&&&
把f按指定的变量x,y,...配方
maple(’completesquare(f,[x,y,...])’)&&&&
把f按指定的变量x,y,...配方,
如何用matlab进行多项式运算
(1)&&&&&&
合并同类项  
syms& 表达式中包含的变量
&&&&collect(表达式,指定的变量)
(2)因式分解 
表达式中包含的变量&&&&
factor(表达式)
表达式中包含的变量
&&&&expand(表达式)
我们也可在matlab中调用maple的命令进行多项式的运算,调用格式如下:
&&&&&&&&&&&&&&&&&&&&&&&&&&&&
maple(’maple中多项式的运算命令’)
如何用matlab进行分式运算 
发现matlab只有一条处理分式问题的命令,其使用格式如下:
[n,d]=numden(f)&&&
把符号表达式f化简为有理形式,其中分子和分母的系数为整数且分子分母不含公约项,返回结果n为分子,d为分母。注意:f必须为符号表达式&
不过我们可以调用maple的命令,调用方法如下:
maple(’denom(f)’)
提取分式f的分母
maple(’numer(f)’)&
提取分式f的分子
maple(’normal(f)’ )
把分式f的分子与分母约分成最简形式
maple(’expand(f)’)
把分式f的分子展开,分母不变且被看成单项。
maple(’factor(f)’)
把分式f的分母和分子因式分解,并进行约分。
如何用Matlab进行因式分解
表达式中包含的变量&&&&&&&&&&
factor(表达式)
如何用Matlab展开
表达式中包含的变量&&&&&&&
expand(表达式) 
 如何用Matlab进行化简
表达式中包含的变量&&&&
simplify(表达式) 
如何用Matlab合并同类项
表达式中包含的变量&&&&
collect(表达式,指定的变量)
如何用Matlab进行数学式的转换 
调用Maple中数学式的转换命令,调用格式如下:
maple(‘Maple的数学式转换命令’)
&即:maple(‘convert(表达式,form)’)&&&&
将表达式转换成form的表示方式
maple(‘convert(表达式,form,
指定变量为x,将依赖于变量x的函数转换成form的表示方式(此指令仅对form为exp与sincos的转换式有用)
如何用Matlab进行变量替换
表达式和代换式中包含的所有变量&&&
subs(表达式,要替换的变量或式子,代换式) 
 如何用matlab进行复数运算 
或& a +b*j
表示复数a+bi&
求复数z的实部
求复数z的虚部
求复数z的模
angle(z)
求复数z的辐角,
求复数z的共轭复数
复数的指数函数,表示e^z
如何在matlab中表示集合
[a, b, c,…]  表示由a, b,
c,…组成的集合&&&
(注意:元素之间也可用空格隔开)
unique(A)&&
表示集合A的最小等效集合(每个元素只出现一次)&
也可调用maple的命令,格式如下:
maple('{a, b,
c,…}')&&&&&&&&&&&&&&&&&&&&
表示由a, b, c,…组成的集合&
下列命令可以生成特殊的集合:
maple(‘{seq(f(i),i=n..m)}’)&&&&&&&&&&&&&&
生成集合{f(n), f(n+1), f(n+2), … , f(m)}
如何用Matlab求集合的交集、并集、差集和补集 
union(A,B)
求集合A和B的并集
intersect(A,B)
求集合A和B的交集
setdiff(A,B)
求集合A和B的差集A-B
setdiff(U,A)
求集合A关于全集U的补集
我们也可以调用Maple的相应功能,调用方法如下:
maple('用Maple求集合的交集、并集、差集和补集的命令
&具体地说,共有下列几个调用命令:
maple( 'A union B'
)&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
求集合A和B的并集
maple( 'A intersect B '
)&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&求集合A和B的交集
maple('A minus B '
)&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
& &求差集A-B
&maple( '全集I minus
)&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
求集合A关于全集I的补集
如何用matlab排序
sort(v)&&&&&&&&&&&&&&&&&&&&&&&&&&
 将向量v的元素从小到大排列(升序排列)
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。随笔 - 1932&
文章 - 0&评论 - 124&trackbacks - 0
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*
&& y=2*exp(-0.5*x).*sin(2*pi*x);
&& plot(x,y)
程序运行后,打开一个图形窗体,在当中绘制出例如以下曲线
注意:指数函数和正弦函数之间要用点乘运算,由于二者是向量。
例52 绘制曲线
这是以參数形式给出的曲线方程,仅仅要给定參数向量,再分别求出x,y向量就可以输出曲线:
&& t=-pi:pi/100:
&& x=t.*cos(3*t);
&& y=t.*sin(t).*sin(t);
&& plot(x,y)
程序运行后,打开一个图形窗体,在当中绘制出例如以下曲线
以上提到plot函数的自变量x,y为长度同样的向量,这是最常见、最主要的使用方法。实际应用中还有一些变化。分别说明:
2. 含多个输入參数的plot函数
plot函数能够包括若干组向量对,每一组能够绘制出一条曲线。含多个输入參数的plot函数调用格式为:plot(x1,y1,x2,y2,&,xn,yn)
例如以下列命令能够在同一坐标中画出3条曲线。
&& x=linspace(0,2*pi,100);
&& plot(x,sin(x),x,2*sin(x),x,3*sin(x))
当输入參数有矩阵形式时,配对的x,y按相应的列元素为横坐标和纵坐标绘制曲线,曲线条数等于矩阵的列数。
&& x=linspace(0,2*pi,100);
&& y1=sin(x);
&& y2=2*sin(x);
&& y3=3*sin(x);
&& x=[x;x;x]';
&& y=[y1;y2;y3]';
&& plot(x,y,x,cos(x))
x,y都是含有三列的矩阵,它们组成输入參数对,绘制三条曲线;x和cos(x)又组成一对,绘制一条余弦曲线。
利用plot函数能够直接将矩阵的数据绘制在图形窗体中,此时plot函数将矩阵的每一列数据作为一条曲线绘制在窗体中。如
&& A=pascal(5)
&&&& 1&&&& 1&&&& 1&&&& 1&&&& 1
&&&& 1&&&& 2&&&& 3&&&& 4&&&& 5
&&&& 1 &&&& 3&&&& 6&&& 10&&& 15
&&&& 1&&&& 4&&& 10&&& 20&&& 35
&&&& 1&&&& 5&&& 15&&& 35&&& 70
&& plot(A)
3. 含选项的plot函数
Matlab提供了一些画图选项,用于确定所绘曲线的线型、颜色和数据点标记符号。这些选项如表所看到的:
&朝下三角符号
&朝上三角符号
&朝左三角符号
&朝右三角符号
例 用不同的线型和颜色在同一坐标内绘制曲线 及其包络线。
&& x=(0:pi/100:2*pi)';
&& y1=2*exp(-0.5*x)*[1,-1];
&& y2=2*exp(-0.5*x).*sin(2*pi*x);
&& x1=(0:12)/2;
&& y3=2*exp(-0.5*x1).*sin(2*pi*x1);
&& plot(x,y1,'k:',x,y2,'b--',x1,y3,'rp');
在该plot函数中包括了3组画图參数,第一组用黑色虚线画出两条包络线,第二组用蓝色双划线画出曲线y,第三组用红色五角星离散标出数据点。
4. 双纵坐标函数plotyy
在Matlab中,假设须要绘制出具有不同纵坐标标度的两个图形,能够使用plotyy函数,它能把具有不同量纲,不同数量级的两个函数绘制在同一个坐标中,有利于图形数据的对照分析。使用格式为:plotyy(x1,y1,x2,y2)
x1,y1相应一条曲线,x2,y2相应还有一条曲线。横坐标的标度同样,纵坐标有两个,左边的相应x1,y1数据对,右边的相应x2,y2。
例:(略)
二.绘制图形的辅助操作
绘制完图形以后,可能还须要对图形进行一些辅助操作,以使图形意义更加明白,可读性更强。
1. 图形标注
在绘制图形时,能够对图形加上一些说明,如图形的名称、坐标轴说明以及图形某一部分的含义等,这些操作称为增加图形标注。有关图形标注函数的调用格式为:
title(&图形名称&) (都放在单引號内)
xlabel(&x轴说明&)
ylabel(&y轴说明&)
text(x,y,&图形说明&)
legend(&图例1&,&图例2&,&) P190
当中,title、xlabel和ylabel函数分别用于说明图形和坐标轴的名称。text函数是在坐标点(x,y)处增加图形说明。(P88 或用gtext命令)。legend函数用于绘制曲线所用线型、颜色或数据点标记图例,图例放置在空白处,用户还能够通过鼠标移动图例,将其放到所希望的位置。除legend函数外,其它函数同样适用于三维图形,在三维中z坐标轴说明用zlabel函数。
上述函数中的说明文字,除了使用标准的ASCII字符外,还能够使用LaTex(一种流行的数学排版软件)格式的控制字符,这样就能够在图形上增加希腊字符,数学符号和公式等内容。在Matlab支持的LaTex字符串中,用/bf , /it , /rm控制字符分别定义黑体、斜体和正体字符,受LaTex字符串控制部分要加大括号{}括起来。比如,text(0.3,0.5,&the usful {/bf MATLAB}&),将使MATLAB一词黑体显示。一些常常使用的LaTex字符见表,各个字符能够单独使用也能够和其它字符及命令配合使用。如text(0.3 ,0.5 ,&sin({/omega}t+{/beta})&)
将得到标注效果 。
/leftarrow
/rightarrow
/downarrow
2. 坐标控制
在绘制图形时,Matlab能够自己主动依据要绘制曲线数据的范围选择合适的坐标刻度,使得曲线能够尽可能清楚的显示出来。所以,普通情况下用户不必选择坐标轴的刻度范围。可是,假设用户对坐标不惬意,能够利用axis函数对其又一次设定。其调用格式为
axis([xmin xmax ymin ymax zmin zmax])
假设仅仅给出前四个參数,则依照给出的x、y轴的最小值和最大值选择坐标系范围,绘制出合适的二维曲线。假设给出了所有參数,则绘制出三维图形。
axis函数的功能丰富,其常常使用的使用方法有:
axis equal :纵横坐标轴採用等长刻度
axis square:产生正方形坐标系(默觉得矩形)
axis auto:使用默认设置
axis off:取消坐标轴
axis on :显示坐标轴
还有:给坐标加网格线能够用grid命令来控制,grid on/off命令控制画还是不画网格线,不带參数的grid命令在两种之间进行切换。
给坐标加边框用box命令控制。和grid一样使用方法
例 :绘制分段函数,并增加图形标注。(略)
3. 图形保持
普通情况下,每运行一次画图命令,就刷新一次当前图形窗体,图形窗体原有图形将不复存在,假设希望在已经存在的图形上再继续增加新的图形,能够使用图形保持命令hold。hold on/off 命令是保持原有图形还是刷新原有图形,不带參数的hold命令在两者之间进行切换。
例:(略)
4. 图形窗体切割
在实际应用中,常常须要在一个图形窗体中绘制若干个独立的图形,这就须要对图形窗体进行切割。切割后的图形窗体由若干个画图区组成,每个画图区能够建立独立的坐标系并绘制图形。同一图形窗体下的不同图形称为子图。Matlab提供了subplot函数用来将当前窗体切割成若干个画图区,每个区域代表一个独立的子图,也是一个独立的坐标系,能够通过subplot函数激活某一区,该区为活动区,所发出的画图命令都是作用于该活动区域。调用格式:
subplot(m,n,p)
该函数把当前窗体分成m&n个画图区,m行,每行n个画图区,区号按行优先编号。当中第p个区为当前活动区。每个画图区同意以不同的坐标系单独绘制图形。
例:(略)
三.绘制二维图形的其它函数
1. 其它形式的线性直角坐标图
在线性直角坐标中,其它形式的图形有条形图、阶梯图、杆图和填充图等,所採用的函数分别为:
bar(x,y,选项)&&&&& 选项在单引號中
stairs(x,y,选项)
stem(x,y,选项)
fill(x1,y1,选项1,x2,y2,选项2,&)
前三个函数和plot的使用方法类似,仅仅是沒有多输入变量形式。fill函数按向量元素下标渐增次序依次用直线段连接x,y相应元素定义的数据点。
例5-8:分别以条形图、填充图、阶梯图和杆图形式绘制曲线
x=0:0.35:7;
y=2*exp(-0.5*x);
subplot(2,2,1);bar(x,y,'g');
title('bar(x,y,''g'')');axis([0, 7, 0 ,2]);
subplot(2,2,2);fill(x,y,'r');
title('fill(x,y,''r'')');axis([0, 7, 0 ,2]);
subplot(2,2,3);stairs(x,y,'b');
title('stairs(x,y,''b'')');axis([0, 7, 0 ,2]);
subplot(2,2,4);stem(x,y,'k');
title('stem(x,y,''k'')');axis([0, 7, 0 ,2]);
2. 极坐标图
polar函数用来绘制极坐标图,调用格式为:
polar(theta,rho,选项)
当中,theta为极坐标极角,rho为极径,选项的内容和plot函数类似。
例5-9:绘制 的极坐标图
theta=0:0.01:2*
rho=sin(3*theta).*cos(5*theta);
polar(theta,rho,'r');
3. 对数坐标图
在实际应用中,常常常使用到对数坐标,Matlab提供了绘制对数和半对数坐标曲线的函数,其调用格式为:
semilogx(x1,y1,选项1,x2,y2,选项2,&)
semilogy(x1,y1,选项1,x2,y2,选项2,&)
loglog(x1,y1,选项1,x2,y2,选项2,&)
这些函数中选项的定义和plot函数全然一样,所不同的是坐标轴的选取。semilogx函数使用半对数坐标,x轴为常常使用对数刻度,而y轴仍保持线性刻度。semilogy恰好和semilogx相反。loglog函数使用全对数坐标,x、y轴均採用对数刻度。
4. 对函数自适应採样的画图函数
5. 其它形式的二维图形
二. 三维画图
一.绘制三维曲线的基本函数
最主要的三维图形函数为plot3,它将二维画图函数plot的有关功能扩展到三维空间,能够用来绘制三维曲线。其调用格式为:
plot3(x1,y1,z1,选项1,x2,y2,z2,选项2,&)
当中每一组x,y,z组成一组曲线的坐标參数,选项的定义和plot的选项一样。当x,y,z是同维向量时,则x,y,z相应元素构成一条三维曲线。当x,y,z是同维矩阵时,则以x,y,z相应列元素绘制三维曲线,曲线条数等于矩阵的列数。
例513 绘制空间曲线
该曲线相应的參数方程为
t=0:pi/50:2*
x=8*cos(t);
y=4*sqrt(2)*sin(t);
z=-4*sqrt(2)*sin(t);
plot3(x,y,z,'p');
title('Line in 3-D Space');
text(0,0,0,'origin');
xlabel('X');ylabel('Y');zlabel('Z');
二.三维曲面
1.平面网格坐标矩阵的生成
当绘制z=f(x,y)所代表的三维曲面图时,先要在xy平面选定一矩形区域,假定矩形区域为D=[a,b]&[c,d],然后将[a,b]在x方向分成m份,将[c,d]在y方向分成n份,由各划分点做平行轴的直线,把区域D分成m&n个小矩形。生成代表每个小矩形顶点坐标的平面网格坐标矩阵,最后利用有关函数画图。
产生平面区域内的网格坐标矩阵有两种方法:
利用矩阵运算生成。
y=(c:dy:d)&;
X=ones(size(y))*x;
Y=y*ones(size(x));
经过上述语句运行后,矩阵X的每一行都是向量x,行数等于向量y的元素个数,矩阵Y的每一列都是向量y,列数等于向量x的元素个数。
利用meshgrid函数生成;
[X,Y]=meshgrid(x,y);
语句运行后,所得到的网格坐标矩阵和上法,同样,当x=y时,能够写成meshgrid(x)
2.绘制三维曲面的函数
Matlab提供了mesh函数和surf函数来绘制三维曲面图。mesh函数用来绘制三维网格图,而surf用来绘制三维曲面图,各线条之间的补面用颜色填充。其调用格式为:
mesh(x,y,z,c)
surf(x,y,z,c)
普通情况下,x,y,z是维数同样的矩阵,x,y是网格坐标矩阵,z是网格点上的高度矩阵,c用于指定在不同高度下的颜色范围。c省略时,Matlab觉得c=z,也即颜色的设定是正比于图形的高度的。这样就能够得到层次分明的三维图形。当x,y省略时,把z矩阵的列下标当作x轴的坐标,把z矩阵的行下标当作y轴的坐标,然后绘制三维图形。当x,y是向量时,要求x的长度必须等于z矩阵的列,y的长度必须等于必须等于z的行,x,y向量元素的组合构成网格点的x,y坐标,z坐标则取自z矩阵,然后绘制三维曲线。
例515 用三维曲面图表现函数 :
为了便于分析三维曲面的各种特征,以下画出3种不同形式的曲面。
%program 1
x=0:0.1:2*
[x,y]=meshgrid(x);
z=sin(y).*cos(x);
mesh(x,y,z);
xlabel('x-axis'),ylabel('y-axis'),zlabel('z-axis');
title('mesh');
%program 2
x=0:0.1:2*
[x,y]=meshgrid(x);
z=sin(y).*cos(x);
surf(x,y,z);
xlabel('x-axis'),ylabel('y-axis'),zlabel('z-axis');
title('surf');
%program 3
x=0:0.1:2*
[x,y]=meshgrid(x);
z=sin(y).*cos(x);
plot3(x,y,z);
xlabel('x-axis'),ylabel('y-axis'),zlabel('z-axis');
title('plot3-1');
程序运行结果分别如上图所看到的。从图中能够发现,网格图(mesh)中线条有颜色,线条间补面无颜色。曲面图(surf)的线条都是黑色的,线条间补面有颜色。进一步观察,曲面图补面颜色和网格图线条颜色都是沿z轴变化的。用plot3 绘制的三维曲面实际上由三维曲线组合而成。能够分析plot(x&,y&,z&)所绘制的曲面的特征。
例516 绘制两个直径相等的圆管相交的图形。
z=1.2*(0:m)/m;
r=ones(size(z));
theta=(0:m)/m*2*
x1=r'*cos(theta);y1=r'*sin(theta);%生成第一个圆管的坐标矩阵
z1=z'*ones(1,m+1);
x=(-m:2:m)/m;
x2=x'*ones(1,m+1);y2=r'*cos(theta);%生成第一个圆管的坐标矩阵
z2=r'*sin(theta);
surf(x1,y1,z1);&&&&&&&&& %绘制竖立的圆管
axis equal ,axis off
surf(x2,y2,z2);&&&&&&&&& %绘制平放的圆管
axis equal ,axis off
title ('两个等直径圆管的交线');
例517 分析由函数 构成的曲面形状与平面z=a的交线。
此外,还有两个和mesh函数类似的函数,即带等高线的三维网格曲面函数meshc和带底座的三维网格曲面函数meshz,其使用方法和mesh类似。不同的是,meshc还在xy平面上绘制曲面在z轴方向的等高线,meshz还在xy平面上绘制曲面的底座。
surf函数也有两个类似的函数,即具有等高线的曲面函数surfc和具有光照效果的曲面函数surfl。
例518 在xy平面内选择[-8, 8]&[-8, 8]绘制函数,
[x,y]=meshgrid(-8:0.5:8);
z=sin(sqrt(x.^2+y.^2))./sqrt(x.^2+y.^2+eps);
subplot(2,2,1);
meshc(x,y,z);
title('meshc');
subplot(2,2,2);
meshz(x,y,z);
title('meshz');
subplot(2,2,3);
surfc(x,y,z);
title('surfc');
subplot(2,2,4);
surfl(x,y,z);
title('surfl');
3.标准三维曲面
Matlab提供了一些函数用于绘制标准三维曲面,这些函数能够产生相应的画图数据,常常使用于三维图形的演示。如,sphere函数和cylinder函数分别用于绘制三维球面和柱面。sphere函数的调用格式为:
[x,y,z]=sphere(n);
该函数将产生(n+1)&(n+1矩阵x,y,z 。採用这三个矩阵能够绘制出圆心位于原点、半径为1的单位球体。若在调用该函数时不带输出參数,则直接绘制所需球面。n决定了球面的圆滑程度,其默认值为20。若n值取的比較小,则绘制出多面体的表面图。
cylinder函数的调用格式为:
[x,y,z]=cylinder(R,n)
当中R是一个向量,存放柱面各个等间隔高度上的半径,n表示在圆柱圆周上有n个间隔点,默认有20个间隔点。如:cylinder(3)生成一个圆柱,cylinder([10,1])生成一个圆锥。而t=0:pi/100:4* R=sin(t); cylinder(R,30);生成一个正弦圆柱面。
另外Matlab还提供了一个peaks函数,称为多峰函数,常常使用于三维曲面的演示。该函数能够用来生成画图数据矩阵,矩阵元素由函数:
在矩形区域[-3 3]&[-3 3]的等分网格点上的函数值确定。如:z=peaks(30)
将生成一个30&30矩阵,
例519 绘制标准三维曲面图形
t=0:pi/20:2*
[x,y,z]=cylinder(2+sin(t),30);
subplot(1,3,1);
surf(x,y,z);
subplot(1,3,2);
surf(x,y,z);
subplot(1,3,3);
[x,y,z]=peaks(30);
meshz(x,y,z);
3.其它三维图形。
在介绍二维图形时,以前提到条形图、杆图、饼图和填充图等特殊图形,它们还能够以三维形式出现,其函数分别为bar3,stem3,pie3和fill3。
bar3绘制三维条形图,常常使用格式为:
bar3(y);
bar3(x,y)
在第一种格式中,y的每个元素相应于一个条形。另外一种格式在x指定的位置上绘制y中元素的条形图。
stem3函数绘制离散序列数据的三维杆图,常常使用格式为:
stem3(z)
stem3(x,y,z)
第一种格式将数据序列z表示为从xy平面向上延伸的杆图,x和y自己主动生成。另外一种格式在x和y指定的位置上绘制数据序列z的杆图,x,y,z的维数要同样。
pie3函数绘制三维饼图,常常使用格式为:
x为向量,用x中的数据绘制一个三维饼图。
fill3函数可在三维空间内绘制出填充过的多边形,常常使用格式为:
fill3(x,y,z,c)
用x,y,z做多边形的顶点,而c指定了填充的颜色。
例520 绘制三维图形。
1绘制魔方阵的三维条形图2以三维杆图形式绘制曲线y=2sinx&3已知x =[43,3025] ,绘制三维饼图 &&&&4用随机的顶点坐标值画出5个黄色三角形
subplot(2,2,1);
bar3(magic(4));
subplot(2,2,2);
y=2*sin(0:pi/10:2*pi);
subplot(2,2,3);
pie3([43,3025]);
subplot(2,2,4);
fill3(rand(3,5),rand(3,5),rand(3,5),'y');
除了上面讨论的三维图形外,常常使用的图形还有瀑布图和三维曲面的等高线图。绘制瀑布图用waterfall函数,使用方法和meshz函数类似,仅仅是它的网格线在x轴方向出现,具有瀑布效果。等高线图分二维和三维两种形式,分别使用函数contour和contour3绘制。
例521 绘制多峰函数的瀑布图和等高线图。
subplot(1,2,1);
[X,Y,Z]=peaks(30);
waterfall(X,Y,Z);
xlabel('XX');ylabel('YY');zlabel('ZZ');
subplot(1,2,2);
contour3(X,Y,Z,12,'k');%当中12代表高度的等级数
xlabel('XX');ylabel('YY');zlabel('ZZ');
三.三维图形的精细处理
一.视点处理
在日常生活中,从不同的角度观察物体,所看到的物体形状是不一样的。同样,从不同视点绘制的三维图形的形状也是不一样的。视点位置可由方位角和仰角表示。
Matlab提供了设置视点的函数view,其调用格式为:
view(az,el)
当中az为方位角,el为仰角,它们均以度为单位。系统默认的视点定义为方位角为-37.5度,仰角30度。
例522 从不同视点绘制多峰函数曲面。
subplot(2,2,1);mesh(peaks);
view(-37.5,30);
title('1');
subplot(2,2,2);mesh(peaks);
view(0,90);
title('2');
subplot(2,2,3);mesh(peaks);
view(90,0);
title('3');
subplot(2,2,4);mesh(peaks);
view(-7,-10);
title('4');
二.色彩处理
三.图形的裁剪处理
Matlab定义的NaN常数能够用于表示那些不可使用的数据,利用这些特性,能够将图形中须要裁剪部分相应的函数值设置成NaN,这样在绘制图形时,函数值为NaN的部分将不显示出来,从而达到对图形进行裁剪的目的。比如,要削掉正弦波顶部或底部大于0.5的部分,可使用以下的程序。
x=0:pi/10:4*
i=find(abs(y)&0.5);
plot(x,y);
例524 绘制两个球面,当中一个在还有一个里面,将外面的球裁掉一部分,以便能看到里面的球。
[x,y,z]=sphere(25);
%生成外面的大球
z1(:,1:4)=NaN;%将大球裁去一部分
c1=ones(size(z1));
surf(3*x,3*y,3*z1,c1); &&&&& %生成里面的小球
c2=2*ones(size(z2));
c2(:,1:4)=3*ones(size(c2(:,1:4)));
surf(1.5*x,1.5*y,1.5*z2,c2);
colormap([0 1 0;0.5 0 0;1 0 0]);
色图中使用三种颜色,外面的球是绿色,里面的球採用深浅不同的两种红色。
四.隐函数作图
假设给定了函数的显式表达式,能够先设置自变量向量,然后依据表达式计算函数向量,从而用plot等函数绘制出图形。可是当函数採用隐函数形式时,如: ,则非常难利用上述方法绘制图形。Matlab提供了一个ezplot函数绘制隐函数图形。使用方法例如以下:
①&&&& 对于函数f=f(x),ezplot的调用格式为:
ezplot(f),在默认区间(-2pi,2pi)绘制图形。
ezplot(f,[a,b]),在区间(a,b)绘制
②&&&& 对于隐函数f=f(x,y),ezplot的调用格式为;
ezplot(f),在默认区间(-2pi,2pi),(-2pi,2pi)绘制f(x,y)=0的图形。
ezplot(f,[xmin,xmax,ymin,ymax]);在区间&&&&&&&&& 绘制图形。
ezplot(f,[a,b]),在区间(a,b),(a,b)绘制
③&&&& 对于參数方程x=x(t),y=y(t),ezplot函数的调用格式为:
ezplot(x,y),在默认区间 绘制x=x(t),y=y(t)图形。
ezplot(x,y,[tmin,tmax]),在区间(tmin,tmax)绘制x=x(t),y=y(t)图形。
例525 隐函数画图举例。
subplot(2,2,1);
ezplot('x^2+y^2-9');
subplot(2,2,2);
ezplot('x^3+y^3-5*x*y+1/5')
subplot(2,2,3);
ezplot('cos(tan(pi*x))',[0,1]);
subplot(2,2,4);
ezplot('8*cos(t)','4*sqrt(2)*sin(t)',[0,2*pi]);
其它隐函数画图还有,ezpolar,ezcontour,ezplot3,ezmesh,ezmeshc,ezsurf,ezsurfc。
阅读(...) 评论()

我要回帖

更多关于 matlab画函数图象 的文章

 

随机推荐