第四章 MATLAB绘图
- 格式:doc
- 大小:413.00 KB
- 文档页数:7
MATLAB 第四章习题
1.绘制函数曲线y=2sin(3πt+π/4),t的范围是0~
2.
2.在同一图形窗口绘制曲线y1=sin(t),t的范围为0~4π;y2=2cos(2t),t的范围为π~3π。
要求y1曲线为黑色点画线,y2曲线为红色虚线圆圈,并在图的右下角标注2条曲线的图例(用legend),横坐标以π为单位标注,运行界面如图所示。
3.在同一图形窗口中绘制函数y=2^1/2e^(-t)sin(2πt+π/4)及其包络线图形,t的范围为【0,2】。
其运行结果如图所示。
4.在同一图形窗口中分别绘制y1=sin(2πt)、y2=cos(2πt)、y3=e^(-4t)共三条函数曲线,t的范围为[0,2].给坐标轴加上标注,给整个图形加上标题,在图形窗口添加文本字符串用于对各曲线分别加以文字说明,其运行界面如图所示。
5.绘z=xe^(-x^2+y^2)的三维曲面图和曲线图,x的范围为[-2,2],y的范围为[-2,2],并实现部分镂空。
6.绘制z=x^2+y^2的三维网线图和曲面图,x的范围为[-5,5],y的范围为[-5,5].将网线图用spring 色图并用颜色标尺显示色图,将曲面图颜色用sshading命令做连续变化。
第4章数值运算习题 4 及解答1 根据题给的模拟实际测量数据的一组t和)(t y试用数值差分diff或数值梯度gradient指令计算)(t y',然后把)(t y和)(t y'曲线绘制在同一张图上,观察数值求导的后果。
(模拟数据从prob_data401.mat获得)〖目的〗●强调:要非常慎用数值导数计算。
●练习mat数据文件中数据的获取。
●实验数据求导的后果●把两条曲线绘制在同一图上的一种方法。
〖解答〗(1)从数据文件获得数据的指令假如prob_data401.mat文件在当前目录或搜索路径上clearload prob_data401.mat(2)用diff求导的指令dt=t(2)-t(1);yc=diff(y)/dt; %注意yc的长度将比y短1plot(t,y,'b',t(2:end),yc,'r')(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 tt x y x ⎰=0sin )(在]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==4.5);s45=s(ii)s45 =1.65413 求函数x ex f 3sin )(=的数值积分⎰=π0 )(dx x f s ,并请采用符号计算尝试复算。
第4章图形处理功能1 内容简介基本内容主要包括:(1)二维图形(2)三维图形(3)图形处理的基本技术2 达到的目标(1)掌握二维图形的绘制。
(2)掌握三维图形的绘制。
(3)掌握图形处理的基本技术3 具体内容3.1 二维图形3.1.1 基本绘图命令(1)当plot函数仅有一个输入变量例4-1y=[5 2 3 8 5]; %y 行矩阵plot(y) %一条线例4-2y=[5 2 3 8 5;2 4 3 1 5;1 1 1 1 1]; %y 矩阵plot(y) %5条线,等于矩阵的列数(2)当plot函数有两个输人变量例4-3x=0:0.01*pi:pi;y=sin(x).*cos(x);plot(x,y)例4-3x=0:0.01*pi:pi;y=[sin(x);cos(x); sin(x).*cos(x)];plot(x,y)例4-4x1=0:0.01*pi:pi;x2=pi:0.01*pi:2*pi;x=[x1' x2'];y=[sin(x1') cos(x2')];plot(x,y)例4-5x1=1:5;x2=6:10;y1=x1;y2=2*x2;plot([x1;x2],[y1;y2])%plot([x1' x2'],[y1' y2'])(3)当plot函数有三个输入变量时MATLAB语言中提供的对曲线的线型、颜色以及标识的控制符如表4.l所示。
例4-6 绘制带有显示属性设置的二维图形。
x=0.5*pi: 0.1*pi:2*pi;y=sin(x);z=cos(x);plot (x, y, '--ko', x, z, '-. r*')3.1.2 特殊的二维图形函数(1)特殊坐标系的二维图形函数(a)对数坐标例4-7 绘制X坐标为对数坐标的二维图形。
x=0.5*pi: 0.1*pi:2*pi;y=sin(x);semilogx (x, y, '-ro')(b)极坐标例4-8绘制极坐标下的二维图形。
第四章图像显示M a t l a b进行图像处理的步骤如下:↓↓↓↓【目录】一、读图像和图像信息 (2)1、读取图像 (2)2、读取图像信息 (4)二、图像显示 (6)1、i m s h o w(I,n) (6)2、i m s h o w(I,[l o w,h i g h]) (7)3、i m s h o w(B W) (8)4、i m s h o w(X,M A P) (12)5、i m s h o w(R G B) (13)6、显示多帧图像序列 (14)7、i m s h o w f i l e n a m e (17)8、s u b i m a g e (17)三、保存图像 (18)1、i m w r i t e函数 (18)四、图像数据格式转换 (19)07-11、索引图像 (19)2、灰度图像 (19)3、真彩色图像 (20)4、二值图像 (20)一、读图像和图像信息1、读取图像函数i m r e a d可以从任何M a t l a b支持的图像文件格式中,以任意位深度读取一幅图像。
格式为:[X,M A P]=i m r e a d('F I L E N A M E.F M T'),其中:F I L E N A M E-为需要读入的图像文件名称,F M T-为图像格式。
【例】图像读取演示[X1,M A P1]=i m r e a d('演示图像-1位黑白.t i f');[X2,M A P2]=i m r e a d('演示图像-8位灰度.t i f');[X3,M A P3]=i m r e a d('演示图像-256色.t i f');[X4,M A P4]=i m r e a d('演示图像-16位灰度.t i f');[X5,M A P5]=i m r e a d('演示图像-24位色.t i f');[X6,M A P6]=i m r e a d('演示图像-48位色.t i f');07-207-3w h o sN a m e S i z e B y t e s C l a s sM A P10x00d o u b l e a r r a yM A P20x00d o u b l e a r r a yM A P3256x36144d o u b l e a r r a yM A P40x00d o u b l e a r r a yM A P50x00d o u b l e a r r a yM A P60x00d o u b l e a r r a yX1427x427182329l o g i c a l a r r a yX2427x427182329u i n t8a r r a yX3427x427182329u i n t8a r r a yX4427x427364658u i n t16a r r a yX5427x427x3546987u i n t8a r r a yX6427x427x31093974u i n t16a r r a yG r a n d t o t a l i s1824058e l e m e n t s u s i n g2558750b y t e s2、读取图像信息可以通过调用i m f i n f o函数获得与图像文件有关的信息,格式如下:I N F O=i m f i n f o('F I L E N A M E.F M T')其中:返回的I N F O是M a t l a b的一个结构体。
第4章数值运算习题 4 及解答1 根据题给的模拟实际测量数据的一组t和)(t y试用数值差分diff或数值梯度gradient指令计算)(t y',然后把)(t y和)(t y'曲线绘制在同一张图上,观察数值求导的后果。
(模拟数据从prob_data401.mat 获得)〖目的〗●强调:要非常慎用数值导数计算。
●练习mat数据文件中数据的获取。
●实验数据求导的后果●把两条曲线绘制在同一图上的一种方法。
〖解答〗(1)从数据文件获得数据的指令假如prob_data401.mat文件在当前目录或搜索路径上clearload prob_data401.mat(2)用diff求导的指令dt=t(2)-t(1);yc=diff(y)/dt; %注意yc的长度将比y短1plot(t,y,'b',t(2:end),yc,'r')grid on(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 tt x y x ⎰=0sin )(在]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==4.5);s45=s(ii)s45 =1.65413 求函数x ex f 3sin )(=的数值积分⎰=π0 )(dx x f s ,并请采用符号计算尝试复算。
第四章绘图
1.二维图形
基本的绘图命令
plot命令打开一个称为图形窗口的窗口,将坐标轴缩扩以适应数据,绘制数据.如果已经存在一个图形窗口,则plot命令会清除当前图形窗口的图形,绘制新的图形.
1)plot(y) 当y为向量时,是以y的分量为纵坐标,以元素序号为横坐标,用直线依次连接数据点,绘制曲线.若y为实矩阵,则按列绘制每列对应的曲线,图中曲线数等于矩阵的列数.
2)plot(x,y) 若y和x为同维向量,则以x为横坐标y为纵坐标绘制连线图.若x是向量J是行数或列数与x长度相等的矩阵,则绘制多条不同色彩的连线图,x被作为这些曲线的共同横坐标.若x和y为同型矩阵,则以x,y对应列元素为横纵坐标分别绘制曲线,曲线条数等于矩阵的列数.
3)polt(xl,y1,x2,y2,…)在此格式中,每对x,y必须符合plot(x,y)中的要求,不同对之间没有影响,命令将对每一对x,y绘制曲线.
以上三种格式中的x,y都可以是表达式.
例作出y=sin(x)在[0,2π]上的图形.
键人:
x=linspace(0,2*pi,30);
y=sin(x);
plot(x,y);
结果如
例在同一个坐标系下作出两条曲线y=sin(x)和y=cos(x)在[0,2π]上的图形.键人:
x=0:2*pi/30:2*pi;y=[sin(x);cos(x)];
plot(x,y);
或键人:
X=0:2*Pi/30:2*Pi;
y1=sin(x);y2=cos(x);
plot(x,y1,x,y2);
都可画出
多条曲线的另一种画法是利用hold命令.在已画好的图形上,若设置hold on,MATLAB 将把新的plot命令产生的图形画在原来的图形上.而命令hold off将结束这种状态.例如,x=linspace(0,2*pi,30);
y=sin(x);plot(x,y);
先画好图1.1,然后用
hold on,z=cos(x);plot(x,z);hold off
增加cos(x)的图形,也可得到图1.2.
2.基本的绘图控制
在调用plot时可以指定颜色、线型和数据点图标,基本的调用格式为
plot(x,y,’color-linestyle-marker’)
其中color-linestyle-marker 为一个字符串,由颜色、线型和数据点图标组成.例如,命令plot(x,y,’y:o’),其中字符串“y:o”中,第一个字符“y”表示曲线颜色为黄色;第二个字符“:”表示曲线为点线;第三个字符“o”表示曲线上每个数据点处用小圆圈标出.当只指定数据点图标时,数据点将不连成线,而只画出一个个孤立的数据点.字符串参数的取值如下:
颜色:y(黄);r(红);g(绿);b(蓝);w(白);k(黑);m(紫);c(青).
线型:-(实线);:(点线);-.(虚点线);- -(虚线).
数据点图标:( 黑点);+( 号);*(星号);o(小圆圈);pentagram(五角星).
坐标系的控制:不特别指定时,MATLAB自动指定图形的横纵坐标比例和显示的范围,如果你不满意,可用axis命令来控制,常用的有
axis([xmin xmax ymin ymax])[]中分别给出x轴和y轴的最小、最大值
axis equal x轴和y轴的单位长度相同
axis square 图框呈方形
axis off 取消坐标轴
3.图形标注
MATLAB提供了标注图形的命令,常用的有xlabel,ylabel,和zlabel,它们分别用于对x,y,z轴加标注;title用于给整个图形加标题;text和gtext用于在图形中特定的位置加字符串,前者字符串的位置在命令中指定,后者用鼠标指定grid在图形上加网格.
例在同一坐标系下画出sin x和cosy的函数图形,并适当标注。
键人:
x=linspace(0,2*pi,30);y=[sin(x);cos(x)];
plot(x,y);grid;xlabel('x');ylabel('y');
title('Sine and COsine Curves');
text(3*pi/4,sin(3*pi/4,'\leftarrowsinx');
text(3*pi/2,cos(3*pi/2),'cosx\rightarrow','HorizontalAlignment', 'right');
输出结果为
若使用命令gtext('sinx')代替命令text,则在图形窗口上会出现十字线,其交点是字符串的位置,移动鼠标可移动该交点,鼠标点击一下就可将字符串固定在那里.
4.多幅图形
Subplot(m,n,p)可在同一个图形商口中,画出多幅不同坐标系中的图形
该命令把一个画面分为m *n个图形区域小代表当前的区域号,在每个区域中分别画一个图.子图沿第一行从左至右编号,接着排第二行,依此类推.用法如下例.键人:
x=linspace(0,2*pi,30);y=sin(x);z=cos(x);
u=2*sin(x).cos(x);v=sin(x)./cos(x);
subplot(2,2,l),polt(x,y),title(’sin(x)’)
subplot(2,2,2),polt(x,z),title(’cos(x)’)
subplot(2,2,3),polt(x,u),title(’2sin(x)cos(x)’)
subplot(2,2,4),polt(x,v),title(’sin(x)/cos(x)’)
输出图形见
5.三维图形
空间曲线
例做螺旋线x=sint,Y=COSt.Z=t.
键人:
t=0:pi/50:10*pi;
polt3(sin(t),cos(t),t);
输出图形见
2.带网格的曲面
命令:
「X,Y」=meshgrid(x,y);mesh(X,Y,Z);和surf(X,Y,Z)
例 作曲面z=f(x,y)的图形,y
x y
x z 2222sin +=+ -7.55.7≤≤x
键入:
x=-7.5:0.5:7.5; y =x ;
[X ,Y]=meshgrid(x ,y);
R =sqrt (X .^2+Y .^7)+eps ;
Z =sin (R )./R ;
mesh (X ,Y ,Z );
输出图形见图
可将上述的画网格图的mesh 命令改为surf(X ,Y ,Z);则输出的曲面图,效果有所不同.
3.等高线
MATLAB 还提供了画二维和三维等高线图的函数contour 和contour3.
例1.6 作出由MATLAB 的函数peaks 产生的二元函数的曲面及其等值线图. 键入:
[X ,Y ,Z 」=peaks (30);surf (X ,Y ,Z );
figure(2); %打开另一个图形窗口
contour (X ,Y ,Z ,16);
figure(3); contour3(X ,Y ,Z ,16);
输出的三个图形见。