MATLAB绘图函数.docx
- 文档编号:7272089
- 上传时间:2023-01-22
- 格式:DOCX
- 页数:15
- 大小:63.71KB
MATLAB绘图函数.docx
《MATLAB绘图函数.docx》由会员分享,可在线阅读,更多相关《MATLAB绘图函数.docx(15页珍藏版)》请在冰豆网上搜索。
MATLAB绘图函数
一、MATLAB通用图形函数命令
有关命令行环境的一些操作:
(1)clc擦去一页命令窗口,光标回屏幕左上角
(2)clear从工作空间清除所有变量(3)clf清除图形窗口内容
命令1figure
功能创建一个新的图形对象。
图形对象为在屏幕上单独的窗口,在窗口中可以输出图形。
用法figure用缺省的属性值创建一个新的图形对象。
命令2subplot
功能生成与控制多个坐标轴。
把当前图形窗口分隔成几个矩形部分,不同的部分是按行方向以数字进行标号的。
每一部分有一坐标轴,后面的图形输出于当前的部分中。
用法subplot(m,n,p)将一图形窗口分成m*n个小窗口,在第p个小窗口中创建一坐标轴。
则新的坐标轴成为当前坐标轴。
若p为一向量,则创建一坐标轴,包含所有罗列在p中的小窗口。
命令3hold
功能保持当前图形窗口中的图形。
该命令是决定是否在当前坐标轴中只能增加新的图形对象还是覆盖原有图形对象。
用法holdon保留当前图形与当前坐标轴的属性值,后面的图形命令只能在当前存在的坐标轴中增加图形。
但是,当新图形的数据范围超出了当前坐标轴的范围,则命令会自动地改变坐标轴的范围,以适应新图形。
holdoff在画新图形之前,重新设置坐标轴的属性为缺省值。
命令4axis
功能坐标轴的刻度与外在显示
用法axis([xminxmaxyminymax])设置当前坐标轴的x-轴与y-轴的范围。
命令5close
功能关闭指定的图形窗口。
用法close关闭当前的图形窗口。
二、MATLAB绘图参数控制
命令1plot
功能这是最基本、最常用的绘图函数,用于绘制线性二维图。
有多条曲线时,循环使用由坐标轴颜色顺序属性定义的颜色,以区别不同的曲线;之后再循环使用由坐标轴线型顺序属性定义的线型,以区别不同的曲线。
plot作图时,可以通过四个参数选择控制曲线的类型。
1.线型(4种)
定义符
-
--
:
-.
线型
实线(缺省值)
划线
点线
点划线
2.线条宽度
指定线条的宽度,取值为整数(单位为像素点)
例如:
plot(x,y,‘linewidth’,4)
3.颜色(8种)
定义符
R(red)
G(green)
b(blue)
c(cyan)
颜色
红色
绿色
兰色
青色
定义符
M(magenta)
y(yellow)
k(black)
w(white)
颜色
品红
黄色
黑色
白色
4.标记类型(13种)
定义符
+
o(字母)
*
.
x
类型
加号
小圆圈
星号
实点
交叉号
定义符
d
^
v
>
<
类型
棱形
上三角形
下三角形
右三角形
左三角形
定义符
s
h
P
类型
正方形
正六角星
正五角星
三、MATLAB图形标住函数
命令1title
功能给当前轴加上标题。
每个axes图形对象可以有一个标题。
标题定位于axes的上方正中央。
用法title('string')在当前坐标轴上方正中央放置字符串string作为标题。
命令2xlabel、ylabel
功能给x、y轴贴上标签
用法xlabel('string')、ylabel(‘string’)给当前轴对象中的x、y轴贴标签。
命令3grid
功能给二维或三维图形的坐标面增加分隔线。
用法gridon给当前的坐标轴增加分隔线。
gridoff从当前的坐标轴中去掉分隔线。
grid转换分隔线的显示与否的状态。
命令4legend
功能在图形上添加图例。
该命令对有多种图形对象类型(线条图,条形图,饼形图等)的窗口中显示一个图例。
对于每一线条,图例会在用户给定的文字标签旁显示线条的线型,标记符号和颜色等。
用法legend('string1','string2',…,pos)用指定的文字string在当前坐标轴中对所给数据的每一部分显示一个图例,在指定的位置pos放置这些图例。
命令5gtext
功能在当前二维图形中用鼠标放置文字。
当光标进入图形窗口时,会变成一个大十字,表明系统正等待用户的动作。
用法gtext('string')当光标位于一个图形窗口内时,等待用户单击鼠标或键盘。
若按下鼠标或键盘,则在光标的位置放置给定的文字“string”
命令6text
功能在当前轴中创建text对象。
函数text是创建text图形句柄的低级函数。
可用该函数在图形中指定的位置上显示字符串。
用法text(x,y,'string')在图形中指定的位置(x,y)上显示字符串string。
命令7zoom
功能对二维图形进行放大或缩小。
放大或缩小会改变坐标轴范围。
用法zoomon打开交互式的放大功能。
当一个图形处于交互式的放大状态时,有两种方法来放大图形:
方法1:
用鼠标左键单击坐标轴内的任意一点,可使图形放大一倍,这一操作可进行多次,直到matlab的最大显示为止;在坐标轴内单击右键,可使图形缩小一倍,这一操作可进行多次,直到还原图形为止。
方法2:
用鼠标拖出要放大的部分,系统将放大选定的区域。
命令8num2str,int2str
功能将数字或整数转换为字符串,以便于图形标注。
用法st=num2str(x)将变量x值表示为字符串st。
st=int2str(x)将变量x的整数部分表示为字符串st。
四、其他二维图形绘制函数
命令1fplot
功能在指定的范围limits内画出一元函数y=f(x)的图形。
用法fplot('function',limits)在指定的范围limits内画出函数名为function的一元函数图形。
其中limits是一个指定x-轴范围的向量[xminxmax]或者是x轴和y轴的范围的向量[xminxmaxyminymax]。
命令2polar
功能画极坐标图。
该命令接受极坐标形式的函数rho=f(θ),在笛卡儿坐标系平面上画出该函数,且在平面上画出极坐标形式的格栅。
用法polar(theta,rho)用极角theta和极径rho画出极坐标图形。
极角theta为从x轴到半径的单位为弧度的向量,极径rho为各数据点到极点的半径向量。
命令3bar
功能二维垂直条形图。
用垂直条形显示向量或矩阵中的值。
用法bar(x,y)在指定的横坐标x上画出y,其中x为严格单增的向量。
若y为矩阵,则bar把矩阵分解成几个行向量,在指定的横坐标处分别画出。
命令4compass
功能从原点画箭头图。
箭头图为一显示起点为笛卡儿坐标系中的原点的二维或三维方向或向量的图形,同时在坐标系中显示圆形的分隔线。
用法compass(x,y)参量x与y为同型的n维向量,则命令显示n个箭头,箭头的起点为原点,箭头的位置为[x(i),y(i)]。
命令5comet
功能二维彗星图。
彗星图为彗星头(一个小圆圈)沿着数据点前进的动画,彗星体为跟在彗星头后面的痕迹,轨道为沿着整个函数的实线。
用法comet(x,y)彗星图动画显示向量x与y确定的路线。
命令6feather
功能画出速度向量图。
一羽毛图在横坐标上等距地显示向量。
用户要表示各个向量的、相对于原点的向量分量。
用法feather(u,v)显示由参量向量u与v确定的向量,其中u包含作为相对坐标系中的x成分,v包含作为相对坐标系中的y成分。
命令7stairs
功能画二维阶梯图,这种图对与时间有关的数字样本系统的作图很有用处。
用法stairs(x,y)结合x与y画阶梯图。
其中要求x与y为同型的向量或矩阵。
此外,x可以为行向量或为列向量,且y为有m=length(x)行的矩阵。
命令8pie
功能饼形图
格式pie(X)用x中的数据画一饼形图,x中的每一元素代表饼形图中的一部分。
X中元素X(i)所代表的扇形大小通过X(i)/sum(X)的大小来决定。
若有sum(X)=1,则x中元素就直接指定了所在部分的大小;若sum(X)<1,则画出一不完整的饼形图。
MATLAB函数
为了显示三维图形,MATLAB提供了各种各样的函数。
有一些函数可在三维空间中画线,而另一些可以画曲面与线格框架。
另外,颜色可以用来代表第四维。
当颜色以这种方式使用时,由于它不再象照片中那样显示信息的自然属性----色彩,而且也不是基本数据的内在属性,所以它称作伪彩色。
为了简化对三维图形的讨论,对颜色的介绍推迟到下一章。
在这一章,主要讨论绘制三维图形的基本概念。
以下所讨论的函数和它们的特征总结在表2、表3、表4和表5中:
表2
contour二维等值线图,即从上向下看contour3等值线图contour3等值线图fill3填充的多边形mesh网格图meshc具有基本等值线图的网格图meshz有零平面的网格图pcolor二维伪彩色绘图,即从上向下看surf图plot3直线图quiver二维带方向箭头的速度图surf曲面图surfc具有基本等值线图的曲面图surfl带亮度的曲面图waterfall无交叉线的网格图
表示3
axis修正坐标轴属性clf清除图形窗口clabel放置等值线标签close关闭图形窗口figure创建或选择图形窗口getframe捕捉动画桢grid放置网格griddata对画图用的数据进行内插hidden隐蔽网格图线条hold保留当前图形meshgrid产生三维绘图数据movie放动画moviein创建桢矩阵,存储动画shading在曲面图和伪彩色图中用分块、平滑和插值加阴影subplot在图形窗口内画子图text在指定的位置放文本title放置标题view改变图形的视角xlabel放置x轴标记ylabel放置y轴标记zlabel放置z轴标记
表4
view(az,el)设置视图的方位角az和仰角elview([az,el])view([x,y,z])在笛卡儿坐标系中沿向量[x,y,z]正视原点设置视图,例如view([001])=view(0,90)view
(2)设置缺省的二维视图,az=0,el=90view(3)设置缺省的三维视图,az=-37.5,el=30[az,el]=view返回当前的方位角az和仰角elview(T)用一个4×4的转置矩阵T来设置视图T=view返回当前的4×4转置矩阵
表5
mmcont2(X,Y,Z,C)具有颜色映象的二维等值线图mmcont3(X,Y,Z,C)具有颜色映象的三维等值线图mmspin3d(N)旋转当前图形的三维方位角来制作动画mmview3d用滑标来调整视角
另外提醒一点,Matlab的reshape函数是列优先的,如:
y= 1 2 3 4 5 6
reshape(y,3,2)=
1 4
2 5
3 6
而不是 12 3
45 6
一、直接绘图函数
直接绘图函数有两个,fplot和ezplot
1.fplot
fplot命令的调用格式主要有:
(1)fplot(fun,lims,str,tol):
直接绘制函数y=fun(x)的图形。
其中,lims为一个向量,若lims只包含两个元素则表示x轴的范围:
[xmin,xmax]。
若lims包含四个元素则前两个元素表示x轴的范围:
[xmin,xmax],后两个元素表示y轴的范围:
[ymin,ymax]。
str可以指定图形的线型和颜色。
tol的值小于1,代表相对误差,默认值为0.002,即0.2%。
>>fplot(@humps,[-1,5]) %在[-1,5]范围内绘制函数humps
上述命令中,@humps表示以函数句柄的形式引用函数。
(C:
\ProgramFiles\MATLAB\R2009a\toolbox\matlab\demos\humps.m)。
(2)fplot(fun,lims,n):
用最少n+1个点来绘制函数fun的图形,其中n大于等于1。
>>fplot('x^2',[-11]) %在[-1,1]范围内绘制函数y=x^2
2.ezplot,ezplot3
ezplot命令是绘制符号表达式的自变量和对应各函数值的二维曲线,ezplot3命令用于绘制三维曲线。
(1)曲线绘图
语法:
ezplot(F,[xmin,xmax],fig) %画符号表达式F的图形
说明:
F是将要画的符号函数;[xmin,xmax]是绘图的自变量范围,省略时默认值为[-2л,2л];fig是指定的图形窗口,省略时默认为当前图形窗口。
例:
>>y=sym('-1/3*x^3+1/3*x^4')
y=
-1/3*x^3+1/3*x^4
>>ezplot(y) %绘制符号函数y在[-2л,2л]中的图形
>>ezplot(y,[0,100]) %绘制符号函数y在[0,100]中的图形
又例
>>x=sym('sin(t)');
>>y=sym('cos(t)');
>>z=sym('t');
>>ezplot3(x,y,z,[0,10*pi],'animate') %绘制t在[0,10*pi]范围的三维曲线
(2)曲面绘制
如
>>ezmesh('sin(x)*exp(-t)','cos(x)*exp(-t)','x',[0,2*pi]);
ezmesh意为Easytouse3-Dmeshplotter,所以其调用格式简单,绘图方便。
(3)其它绘图命令
MATLAB还提供了如下表所示的较常用绘图命令。
这些命令的举例都是对字符串函数进行绘图,同样也可用于符号表达式绘图。
命令名含义举例
ezcontour画等高线ezcontour('x*sin(t)',[-4,4])
ezcontourf画带填充颜色等高线ezcontourf('x*sin(t)',[-4,4])
ezmesh画三维网线图ezmesh('sin(x)*exp(-t)','cos(x)*exp(-t)','x',[0,2*pi])
ezmeshc画带等高线的三维网线图ezmeshc('sin(x)*t',[-pi,pi])
ezpolar画极坐标图 ezpolar('sin(t)',[0,pi/2])
ezsurf画三维曲面图ezsurf('x*sin(t)','x*cos(t)','t',[0,10*pi])
ezsurfc画带等高线的三维曲面图ezsurfc('x*sin(t)','x*cos(t)','t',[0,pi,0,2*pi])
二、网格法绘制三维曲面
1.产生三维数据
在MATLAB中,利用meshgrid函数产生平面区域内的网格坐标矩阵。
其格式为:
x=a:
d1:
b;y=c:
d2:
d;
[X,Y]=meshgrid(x,y);
语句执行后,矩阵X的每一行都是向量x,行数等于向量y的元素的个数,矩阵Y的每一列都是向量y,列数等于向量x的元素的个数。
2.绘制三维曲面的函数
surf函数和mesh函数的调用格式为:
mesh(x,y,z,c)
surf(x,y,z,c)
一般情况下,x,y,z是维数相同的矩阵。
x,y是网格坐标矩阵,z是网格点上的高度矩阵,c用于指定在不同高度下的颜色范围。
例:
用曲面图表现函数y=x^2+y^2。
clf,x=-4:
4;y=x;[X,Y]=meshgrid(x,y);
Z=X.^2+Y.^2;
surf(X,Y,Z);%或mesh(X,Y,Z)
matlab之基本绘图函数
matlab之基本绘图函数
clear:
清空内存中的变量;
matlab之基本绘图函数
clear:
清空内存中的变量;
figure:
强制生成一个新的个绘图窗口;
symsxyt:
声明变量;
fplot(函数表达式,绘图区间);
plot(横坐标向量,纵坐标向量,颜色/线形等参数)
ezplot(函数表达式):
简单的fplot,easyfplot
axis([xminxmaxyminymax...]):
设置坐标轴显示范围
求极限
limit:
例:
limit(F,x,a,left);对表达式F求极限,变量为x,从左边趋近a。
inf:
正无穷;
-inf:
负无穷。
求解线形方程
solve,linsolve
例:
A=[5042;1-121;4120;1111];
%矩阵的行之间用分号隔开,元素之间用逗号或空格
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:
functiony=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
symsabcx
y=sin(a*x)*sin(b*x)*sin(c*x);
int(y,x);
pretty(ans)
定积分:
int(fun,var,a,b)
其中a,b分别为上下限
foll
应用到的函数:
I=imread('图像文件名'):
读取图像数据,保存在矩阵I中;
imshow(I):
显示灰度图像I,其他用法见matlab帮助;
I2=im2double(I1):
把图像数组I1转换成double精度类型;
D=dctmtx(n):
二维离散余弦变换函数,返回n*n离散余弦变换矩阵。
一个n*n的变换矩阵T被定义成:
Tpq=1/sqrt(n)
当p=0,0<=q<=M-1;
Tpq=sqrt(2/n)*cos[pi*(2q+1)*p/2n]
当1<=p<=M-1,0<=q<=M-1。
B=blkproc(A,[mn],fun,P1,P2...):
块操作函数。
对图像A的每个不同的m*n块应用fun函数,P1,P2等为fun函数参数。
在图像边缘用0来扩展;只有当fun的返回矩阵是m*n矩阵时,B和A的大小才相同。
figure:
强制生成一个新的个绘图窗口;
matlab实现离散余弦变换压缩(JPEG压缩原理)
JPEG图像压缩算法:
输入图像被分成8*8或16*16的小块,然后对每一小块进行二维DCT(离散余弦变换)变换,变换后的系数量化、编码并传输;
JPEG文件解码量化了的DCT系数,对每一块计算二维逆DCT变换,最后把结果块拼接成一个完整的图像。
在DCT变换后舍弃那些不严重影响图像重构的接近0的系数。
DCT变换的特点是变换后图像大部分能量集中在左上角,因为左上放映原图像低频部分数据,右下反映原图像高频部分数据。
而图像的能量通常集中在低频部分。
实例程序:
functionJpeg
I=imread('D:
\MATLAB7\toolbox\images\imdemos\cameraman.tif');
%该图片在安装matlab的目录中找,原图为灰度图象
I=im2double(I);%图像存储类型转换
T=dctmtx(8);%离散余弦变换矩阵
B=blkproc(I,[88],'P1*x*P2',T,T');
%对原图像进行DCT变换
mask=[11110000
11100000
11000000
10000000
00000000
00000000
00000000
00000000];
B2=blkproc(B,[88],'P1.*x',mask);
%数据压缩,丢弃右下角高频数据
I2=blkproc(B2,[88],'P1*x*P2',T',T);
%进行DCT反变换,得到压缩后的图像
imshow(I)
title('原始图像')
figure;
imshow(I2)
title('压缩后的图像')
运行结果:
空间曲线
例:
求方程组的空间曲线
1。
化为参数方程组
x=t
y=sqrt[t(1-t)]
z=sqrt[1-x^2-y^2]
2。
程序
t=0:
0.001:
1;
x=t;
y=sqrt(t.*(1-t));
z=sqrt(1-x.^2-y.^2);
plot3(x,y,z,z,-y,z)
其中.*为数组相乘,.^为数组乘方
空间曲面
mesh()函数语法:
mesh(Z):
mesh(X,Y,Z,C):
其中C是用来定义相应点颜色等属性的数组
例:
求x^2+y^2=z的空间曲面
x=-4:
4;
y=x;
[X,Y]=meshgrid(x,y);%生成x,y坐标
Z=X.^2+Y.^2;
mesh(X,Y,Z)
级数的求和与收敛
symsum(fun,var,a,b):
其中fun是通项表达式,var为求和变量,a为求和起点,b为求和终点
例如:
I为1/[n*(2n+1)]从1到正无穷的和,求I
symsn;
f1=1/(n*(2*n+1));
I=symsum(f1,n,1,inf)
计算结果为:
I=2-2*log
(2)
矩阵的基本运算
行列式求值:
det(A)
矩阵加减:
+、-
矩阵相乘:
*
矩阵左除:
A/B %相当于inv(A)*B
矩阵右除:
A\B %相当于A*inv(B)
矩阵的幂:
^
矩阵转置:
'
矩阵求共轭(实部相同,虚部相反):
conj(X)
矩阵求逆:
inv(X)
图像类型与类型间的转换
1。
索引图像:
包括一个数据矩阵
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 绘图 函数