第六讲Matlab数据可视化_第1页
第六讲Matlab数据可视化_第2页
第六讲Matlab数据可视化_第3页
第六讲Matlab数据可视化_第4页
第六讲Matlab数据可视化_第5页
已阅读5页,还剩54页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第六讲第六讲 Matlab 数据数据可视化可视化及其在测绘中应用及其在测绘中应用内容提要1.平面曲线绘制2.符号变量和符号函数3.三维曲线绘制4.三维曲面绘制5.数据可视化在测绘中应用一、平面曲线绘制一、平面曲线绘制 1.单窗口多曲线单窗口多曲线绘图 figure %默认打开一个窗口,可以省略 t=0:pi/100:2*pi; y1=sin(t);y2=sin(t+0.25);y3=sin(t+0.5); subplot(1,3,1); plot(t,y1);%执行subplot(1,3,1);会自动打开 subplot(1,3,2); plot(t,y2); subplot(1,3,3);

2、plot(t,y3);051 0-1-0 .8-0 .6-0 .4-0 .200 .20 .40 .60 .81051 0-1-0 .8-0 .6-0 .4-0 .200 .20 .40 .60 .81051 0-1-0 .8-0 .6-0 .4-0 .200 .20 .40 .60 .81subplot(3,1,1);%自动打开一个窗口plot(t,y1);subplot(3,1,2);plot(t,y2);subplot(3,1,3);plot(t,y3);原来的窗口里面的图形没有啦!01234567-10101234567-10101234567-1012.多窗口多曲线绘图多窗口多曲线绘

3、图 figure(n) 创建窗口函数,n为窗 口顺序号。t=0:pi/100:2*pi;y1=sin(t);y2=sin(t+0.25);y3=sin(t+0.5);plot(t,y1) 自动出现第一个窗口figure(2)plot(t,y2) 在第二窗口绘图figure(3)plot(t,y3) 在第三窗口绘图注意:如果不这样呢?会咋样?01234567-1-0.8-0.6-0.4-0.200.20.40.60.8101234567-1-0.8-0.6-0.4-0.200.20.40.60.8101234567-1-0.8-0.6-0.4-0.200.20.40.60.813.图形加注功能图

4、形加注功能 若将标题、坐标轴标记、网格线及文字注释加注到图形上,常用函数为: title 给图形加标题标题 xlable 给x轴加标注 ylable 给y轴加标注 text 在图形指定位置加标注指定位置加标注 gtext 将标注加到图形任意位置 grid on(off) 打开、关闭坐标网格线 legend 添加图例 axis 控制坐标轴的刻度注注:也可以直接在figure窗口进行鼠标操作例:t=0:0.1:10;y1=sin(t);y2=cos(t);plot(t,y1,r,t,y2,b-);x=1.7*pi;1.6*pi;y=-0.3;0.8;s=sin(t);cos(t); %定义符号矩阵

5、text(x, y, s); %指定位置加标注title(正弦和余弦曲线);legend(正弦,余弦)xlabel(时间t); ylabel(正弦、余弦);%自动打开gridaxis squaregrid off 注意:axis的用法还有: axis(xmin xmax ymin ymax) 用行向量中 给出的值设定坐标轴的最大和最小值。 如axis (-2 2 0 5) axis equal 将两坐标轴设为相等 axis on(off) 显示和关闭坐标轴的标 记、标志 4.绘制函数图像的函数绘制函数图像的函数 plot最基本的二维绘图函数 fplot的调用格式: fplot(funname,

6、 lims) 绘制函数fun在x区间 lims=xmin xmax ymin ymax的函数图。 fplot(funname, lims, s) 以指定线形绘图。fplot(sin(x),tan(x),cos(x),2*pi*-1 1 -1 1)-6-4-20246-6-4-202465.常用特殊二维绘图函数 bar 绘制直方图 polar 绘制极坐标图 hist 绘制统计直方图 rose 绘制统计扇形图 errorbar 绘制误差棒图 area 区域图 pie 饼图 scatter 离散点图 例:绘制极坐标绘图t=0:2*pi/90:2*pi;y=cos(4*t);polar(t,y) 0.

7、2 0.4 0.6 0.8 13021060240902701203001503301800 x = -1.7 0.2 1.7;y = 0 0.055 0.085 0.180 0.235 0.320 0.460 0.560 0.630 0.640 0.575 0.460 0.295 0.225 0.180 0.070 0.030 0;bar ( x , y ,1 ,b) %每个直方条的宽度是1,默认0.8,大于1会重叠-2-1.5-1-0.500.511.5200.10.20.30.40.50.60.7根据偶然误差服从 N (0 ,2),可以应用MATLAB绘制出均方差为= 1 ,= 2 的正

8、态分布概率密度函数的误差分布曲线,具体为x = - 4 0.1 4;y1 = normpdf ( x ,0 ,1) ;y2 = normpdf ( x ,0 ,2) ;hold on %如果你在新画图像之后不想覆盖原图像就要加上hold onplot(x , y1 , r)plot(x , y2 , b)hold off-4-3-2-10123400.050.10.150.20.250.30.350.4例:绘制直方图 t=0:0.2:2*pi; y=cos(t); bar(t,y)05101520253035-1-0.8-0.6-0.4-0.200.20.40.60.8100.10.20.30

9、.40.50.60.70.80.9100.10.20.30.40.50.60.70.80.91a=rand(200,1);b=rand(200,1);c=rand(200,1);scatter(a,b,100,c,p) %改一下再绘制XQ测量平差中误差椭圆的绘制平差后任一待定点坐标平差值可以计算出,而且可计算出 ,据此可计算未知点平差后的坐标,以及误差椭圆的三要素:长半轴E,短半轴F,极大值方向。function ellipse(x,y,A,B,angle)%参数说明: x,y-椭圆中点的横纵坐标;A,B-椭圆长短轴;angle-椭圆旋转角度%该函数可以通过无数个点的绘制,实现任意方向误差椭圆

10、的绘制。plot(y+A*sin(angle)*cos(0:pi/360:2*pi)+B*cos(angle)*sin(0:pi/360:2*pi), x+A*cos(angle)*cos(0:pi/360:2*pi)-B*sin(angle)*sin(0:pi/360:2*pi);axis(equal);xlabel(x);ylabel(y);title(eclipse); 运行ellipse(400,400,100,50,pi/4)300320340360380400420440460480500340360380400420440460 xyeclipse对某点进行位移观测,得到8个不同

11、时间的位移值,见下表,试进行傅立叶变换,并作出频谱图。表5.1 观测数据时间k0 1 2 3 4 5 6 7位移f(k) 2.3 3.0 3.8 4.2 5.1 4.5 3.2 1.8 clear load count.txt p=count; t=0:length(p)-1; p1=polyfit(t,p,7); f=polyval(p1,t); subplot(2,2,1); plot(t,p,o,t,f,-); title(原始数据采用多面拟合) xlabel(时间序列) ylabel(沉降值)pval=p-f;subplot(2,2,2) plot(t,pval)title(去除逐势项

12、后)xlabel(时间序列)ylabel(去除逐势项后值)ffty=fft(pval);%进行傅里叶变换%计算能量值m=abs(ffty);f=(0:length(t)-1)*20/length(t);%绘出频域分析结果图subplot(2,2,3)plot(f,m)title(频域分析)xlabel(频率值)ylabel(能量)二、符号变量、符号表达式、符号函数创建符号变量1.生成符号变量例:syms a b x X Y; k=sym(3)k=sym(3); z=sym(c*sqrt(delta)+y*sin(theta); %将字符串表达式变成符号变量 EXPR=a*z*X+(b*x2+k

13、)*Y; %创建符号数学函数说明:前两条指令定义a b x X Y是符号变量,定义后就可以参加后面的符号计算了。定义了符号变量后,就可以进行符号运算,否则不行 例:用符号变量代表黄金分割比率:rho=sym(1+sqrt(5)/2); rho=sym(1+sqrt(5)/2); % %定义符号表达式定义符号表达式 %下面可以对rho进行各种操作了。f=rho2-rho-1simple(f)simplify(f)simplify和simple是Matlab符号数学工具箱提供的两个简化函数,区别如下: simplify的调用格式为:simplify(S);对表达式S进行化简。 simple是通过对

14、表达式尝试多种不同的方法(包括simplify)进行化简,以寻求符号表符号表达式S的最简形式。例:求矩阵A=a11,a12,a13;a21,a22,a23;a31,a32,a33的行列式值、逆和特征根syms a11 a12 a13 a21 a22 a23 a31 a32 a33;%每个变量间用空格分开!A=a11 a12 a13;a21 a22 a23; a31 a32 a33,DA=det(A),IA=inv(A),EA=eig(A)定义多个符号变量用syms,定义单个可用sym,也可用syms但定义多个不能用sym2.实型和复型符号函数的创建sym命令可以确定符号变量的数学属性,通过re

15、al选项实现。也就是说,下列指令包含了符号变量x和y,并有附加了数学特性。 x=sym(x,real);y=sym(y,real);或采用更有效的方式定义: syms x y real z=x+i*y; 这意味着表达式f=x2+y2严格非负,因此z是一个复变量,可以做如下操作。 conj(x),conj(z) %返回相应变量的共轭复数。 例例1 考察符号变量和数值变量的差别。考察符号变量和数值变量的差别。 在在 MATLAB命令窗口,输入命令:命令窗口,输入命令: a=sym(a);b=sym(b);c=sym(c);d=sym(d); %定义定义4个符号变量个符号变量 w=10;x=5;y=

16、-8;z=11; %定义定义4个数值变量个数值变量 A=a,b;c,d %建立符号矩阵建立符号矩阵A B=w,x;y,z %建立数值矩阵建立数值矩阵B det(A) %计算符号矩阵计算符号矩阵A的行列式的行列式 det(B) %计算数值矩阵计算数值矩阵B的行列式的行列式例例2 比较符号常数与数值在代数运算时的差别。比较符号常数与数值在代数运算时的差别。在在 MATLAB命令窗口,输入命令:命令窗口,输入命令:pi1=sym(pi);k1=sym(8);k2=sym(2);k3=sym(3); % 定义符号定义符号常数常数pi2=pi; r1=8; r2=2; r3=3; % 定义数值变量定义数

17、值变量sin(pi1/3) % 计算符号表达式值计算符号表达式值 sin(pi2/3) % 计算数值表达式值计算数值表达式值sqrt(k1) % 计算符号表达式值计算符号表达式值sqrt(r1) % 计算数值表达式值计算数值表达式值sqrt(k3+sqrt(k2) % 计算符号表达式值计算符号表达式值sqrt(r3+sqrt(r2) % 计算数值表达式值计算数值表达式值3.符号函数的简易绘图函数ezplot的调用格式: ezplot(f) 这里f为包含单个符号变量x 的符号表达式,在x轴的默认范围 -2*pi 2*pi内绘制f(x)的函数图 ezplot(f,xmin,xmax) 给定区间 e

18、zplot(f,xmin,xmax,figure(n) 指定 绘图窗口绘图。ezplot(sin(x)ezplot(sin(t),cos(t),-4*pi 4*pi,figure(2)-6-4-20246-1-0.500.51xsin(x)-1-0.500.51-0.8-0.6-0.4-0.200.20.40.60.81xyx = sin(x), y = cos(y)三、三维曲线图绘制plot3 基本的三维图形指令调用格式:plot3(x,y,z) x,y,z是长度相同的向量plot3(X,Y,Z) X,Y,Z是维数相同的矩阵plot3(x,y,z,s) plot3(x1,y1,z1,s1,

19、x2,y2,z2,s2, )二维图形的所有基本特性对三维图形全都适用。定义三维坐标轴大小 axis(xmin xmax ymin ymax zmin zmax ) grid on(off) 绘制三维曲线的网格子图和多窗口等也可以用到三维图形中例:绘制三维线图t=0:pi/50:10*pi;plot3(t,sin(t),cos(t),r:)010203040-1-0.500.51-1-0.500.51四、三维曲面图绘制1.三维网格线绘图mesh 三维网格线绘图函数调用格式: mesh(z) z为nm的矩阵,x与y 坐标为元素的下标 mesh(x,y,z) x, y, z分别为三维空 间的坐标位置

20、例,矩阵的三维网线图 z=rand(6); 0.8808 0.0729 0.4168 0.7694 0.3775 0.4776 0.3381 0.7101 0.0964 0.6352 0.3826 0.7086 0.1895 0.8791 0.6747 0.8965 0.6876 0.2380 0.7431 0.3594 0.5626 0.8784 0.1217 0.3910 0.7189 0.0899 0.8130 0.4865 0.0768 0.9759 0.8792 0.1610 0.8782 0.1131 0.1433 0.6288 z=round(z) 1 0 0 1 0 0 0 1

21、 0 1 0 1 0 1 1 1 1 0 1 0 1 1 0 0 1 0 1 0 0 1 1 0 1 0 0 1 mesh(z);mesh(z)0246024600.20.40.60.81 2.三维曲面图surf 三维曲面绘图函数。三维曲面图绘制与三维网格图绘制看起来似乎一样。但也有区别:网格线图:线条有颜色,空挡是无色的;曲面图:线条是黑色的,空挡有颜色(把线条之间的空挡可填充颜色,且可沿z轴按每一网格变化调用格式: surf(x,y,z) 绘制三维曲面图,x,y,z为图形坐标向量或矩阵。例:X,Y,Z=peaks(30); %peaks为matlab自动生成的三维测试图形,产生三个3030

22、元素在-3,3中服从guassian分布的矩阵 surf(X,Y,Z) -202-202-505xyPeaks-4-2024-4-2024-10-50510surfc(X,Y,Z) 带等高线的曲面图 X,Y,Z=peaks(30);surfc(X,Y,Z)-4-2024-4-2024-10-50510surfl(X,Y,Z) 被光照射带阴影的曲面图X,Y,Z=peaks(30);surfl(X,Y,Z)视角函数: view(az, el) az -方位角;el - 俯视角 省缺值为:az=-37.5; el=30例。观察不同视角的波峰图形z=peaks(40);subplot(2,2,1);m

23、esh(z);subplot(2,2,2);mesh(z);view(-15,60);subplot(2,2,3);mesh(z);view(-90,0);subplot(2,2,4);mesh(z);view(-7,-10);0204002040-10010az=-37.5,el=300204002040-10010az=-15,el=6002040-10-50510az=-90,el=00204002040-10010az=-7,el=-10q M M文件函数文件函数(M file function)(M file function)q 内联函数内联函数(Inline Function)(

24、Inline Function)q 匿名函数匿名函数(Anonymous Function)(Anonymous Function)自定义函数的三个途径: q M M文件函数:文件函数:函数文件形式建立的自定义函数也称为函数文件形式建立的自定义函数也称为q 定义的一般格式:定义的一般格式: function 输出形参列表输出形参列表=函数名函数名(输入形参列表输入形参列表) % 注释说明部分注释说明部分(可选可选) 函数体语句函数体语句(必须必须)q 例:做如下函数文件:例:做如下函数文件:myfunc.mmyfunc.mfunction y=myfunc(x)function y=myfun

25、c(x) y=x2; y=x2;q myfunc(2) myfunc(2)% %计算在计算在x=2x=2处的函数值处的函数值q ezplot(myfunc)ezplot(myfunc)% % 作函数图像作函数图像q fplot(myfunc,-5,5,r) fplot(myfunc,-5,5,r)q % % 注意到:上边两个命令中的文件名仍需加单引号注意到:上边两个命令中的文件名仍需加单引号M文件函数(M file function)q inlineinline函数也称为内联函数或内嵌函数或在线函数函数也称为内联函数或内嵌函数或在线函数q 一般格式:一般格式: 函数名函数名=inline(=i

26、nline(函数表达式函数表达式 , , 变量变量1 1 , , 变量变量2 2 ,.,.) )q 例:例: f=inline(x2,x);f=inline(x2,x);% %定义了函数定义了函数f(x)=x2f(x)=x2 f(2) f(2)% %计算在计算在x=2x=2处的函数值处的函数值 ezplot(f); ezplot(f); % % 作函数图像作函数图像 fplot(f,0,5,r); fplot(f,0,5,r); % % 注意到:当注意到:当f f是内联函数时,上边两个命令中的是内联函数时,上边两个命令中的f f不再加单引号。不再加单引号。内联函数(Inline Functio

27、n)q 由由 定义的函数称为定义的函数称为匿名函数匿名函数或临时函数。或临时函数。 是函数的指是函数的指针针 ,也称为函数句柄。效率优于,也称为函数句柄。效率优于inlineinline函数,建议今后用匿函数,建议今后用匿名函数取代名函数取代inlineinline函数。函数。q 一般格式:一般格式:函数句柄函数句柄=(=(输入变量输入变量) ) 函数表达式函数表达式q 例:例:q f=(x)x2 f=(x)x2 % %定义了函数定义了函数f(x)=x2f(x)=x2q f(2) f(2)% %计算在计算在x=2x=2处的函数值处的函数值q ezplot(f); ezplot(f); % %

28、作函数图像作函数图像q fplot(f,0,5,r); fplot(f,0,5,r);q % % 注意到:当注意到:当f f是匿名函数时,上边两个命令中的是匿名函数时,上边两个命令中的f f也不再加单引号。也不再加单引号。匿名函数(Anonymous Function)标准正态分布a=randn(1,10000);hist(a,100)hold onx=-5:0.1:5; plot(x,(2*pi)(-1/2)*800*exp(-x.2/2),r)函数优化函数优化寻优函数:寻优函数:fminbnd 单变量函数单变量函数fminsearch 多变量函数多变量函数constr 有约束条件有约束条件无约束条件无约束条件例例1:f(x)=x2+3x

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论