《matlab数据处理.ppt》由会员分享,可在线阅读,更多相关《matlab数据处理.ppt(60页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Matlab 数据处理基础数据处理基础王龑南京大学将下列函数在-2,2适当离散化,计算并画图break 中断 break 中断for,while循环语句的执行,在嵌套循环结构中,break从最里层循环退出。continue 继续与for,while循环语句一起使用,结束本次循环,即跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判断。内容提要画图M文件Fourier变换基本统计函数几个例子单窗口多曲线分图绘图subplot(1,3,1);plot(t,y1)subplot(1,3,2);plot(t,y2)subplot(1,3,3);plot(t,y3)subplot(3,1,1);
2、plot(t,y)subplot(3,1,2);plot(t,y3)subplot(3,1,3);plot(t,y2)多窗口绘图 figure(n)创建窗口函数,n为窗 口顺序号。t=0:pi/100:2*pi;y=sin(t);y1=sin(t+0.25);y2=sin(t+0.5);plot(t,y)自动出现第一个窗口figure(2)plot(t,y1)在第二窗口绘图figure(3)plot(t,y2)在第三窗口绘图图形加注功能将标题、坐标轴标记、网格线及文字注释加注到图形上,这些函数为:title 给图形加标题 xlable 给x轴加标注 ylable 给y轴加标注 text 在图形
3、指定位置加标注 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);text(x,y,s);title(正弦和余弦曲线);legend(正弦,余弦)xlabel(时间t),ylabel(正弦、余弦)gridaxis square axis的用法还有:axis(xmin xmax y
4、min ymax)用行向量中 给出的值设定坐标轴的最大和最小值。如axis(-2 2 0 5)axis equal 将两坐标轴设为相等 axis on(off)显示和关闭坐标轴的标 记、标志 axis auto 将坐标轴设置返回自动缺 省值绘制函数图函数fplot的调用格式:fplot(fun,lims)绘制函数fun在x区间 lims=xmin xmax的函数图。fplot(fun,lims,s)以指定线形绘图。fplot(sin(x),tan(x),cos(x),2*pi*-1 1-1 1)符号函数的简易绘图函数ezplot的调用格式:ezplot(f)这里f为包含单个符号变量x的符号表达
5、式,在x轴的默认范围 -2*pi 2*pi内绘制f(x)的函数图ezplot(f,xmin,xmax)给定区间ezplot(f,xmin,xmax,figure(n)指定绘图窗口绘图。ezplot(sin(x)ezplot(sin(x),cos(y),-4*pi 4*pi,figure(2)特殊二维绘图函数 bar 绘制直方图 polar 绘制极坐标图 hist 绘制统计直方图 stairs 绘制阶梯图 stem 绘制火柴杆图 rose 绘制统计扇形图 comet 绘制彗星曲线 errorbar 绘制误差棒图 compass 复数向量图(罗盘图)feather 复数向量投影图(羽毛图)quiv
6、er 向量场图 area 区域图 pie 饼图 convhull 凸壳图 scatter 离散点图例,绘制阶梯曲线x=0:pi/20:2*pi;y=sin(x);stairs(x,y)例:绘制极坐标绘图t=0:2*pi/90:2*pi;y=cos(4*t);polar(t,y)例:绘制火柴杆绘图 t=0:0.2:2*pi;y=cos(t);stem(y)例:绘制直方图 t=0:0.2:2*pi;y=cos(t);bar(y)例:绘制彗星曲线图 t=-pi:pi/500:pi;y=tan(sin(t)-sin(tan(t);comet(t,y)a=rand(200,1);b=rand(200,1
7、);c=rand(200,1);scatter(a,b,100,c,p)三维线图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,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)
8、,r:)三维网格图mesh 三维网线绘图函数调用格式:mesh(z)z为nm的矩阵,x与y 坐标为元素的下标 mesh(x,y,z)x,y,z分别为三维空 间的坐标位置例,矩阵的三维网线图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
9、0.0768 0.9759 0.8792 0.1610 0.8782 0.1131 0.1433 0.6288z=round(z)1 0 0 1 0 0 0 1 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 1mesh(z);mesh(z)三维曲面图surf 三维曲面绘图函数,与网格图 看起来一样与三维网线图的区别:网线图:线条有颜色,空挡是无色的曲面图:线条是黑色的,空挡有颜色(把线条之间的空挡填充颜色,沿z轴按每一网格变化调用格式:surf(x,y,z)绘制三维曲面图,x,y,z 为图形坐标向量例:X,Y,Z=peaks(30)
10、peaks为matlab自动生成的三维测试图形surf(X,Y,Z)surfc(X,Y,Z)带等高线的曲面图 X,Y,Z=peaks(30);surfc(X,Y,Z)surfl(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);mesh(z);subplot(2,2,2);mesh(z);view(-15,60);subplot(2,2,3);mesh(z);view(-90,0
11、);subplot(2,2,4);mesh(z);view(-7,-10);水线图(waterfall)waterfall(peaks(30)matlab的工作模式指令驱动模式 通常matlab以指令驱动模式工作,即在matlab 窗口下当用户输入单行指令时,matlab 立即处理这条指令,并显示结果,这就是matlab命令行方式。命令行操作时,matlab窗口只允许一次执行一行上的一个或几个语句。命令行方式程序可读性差,而且不能存储,对于复杂的问题,应编写成能存储的程序文件。m文件模式将matlab语句构成的程序存储成以m为扩展名的文件,然后再执行该程序文件,这种工作模式称为程序文件模式。程
12、序文件不能在指令窗口下建立,因为指令窗口只允许一次执行一行上的一个或几个语句。m文件 m文件的类型是普通的文本文件,我们可以使用系统认可的文本文件编辑器来建立m文件。具体的创建方法:在matlab命令窗口点击file 菜单new m-file(也可直接点file下面的新建图标)m文件 它只是一个简单的ASCII码文本文件,执行程序时逐行解释运行程序,matlab是解释性的编程语言。是解释性的编程语言。m文件有两类 独立的m文件 称脚本m文件 可调用m文件 称函数m文件m文件包括两部分:注释文件和程序文件脚本m文件 脚本m文件实际上是一串指令的集合,与在命令窗口逐行执行文件中的所有指令,其结果是
13、一样的。没有输入输出参数。函数m文件 需要输入变量,返回输出变量 matlab用户可以根据需要编辑自己的m文件,它们可以像库函数一样方便的调用,从而极大地扩展了matlab 的能力。对于某一类特殊问题,如创建了许多m函数文件,则可形成新的工具箱。这种用matlab语言创建定义新的matlab函数的功能,正体现了matlab语言强大的扩展功能。函数m文件的格式:function 返回变量=函数名(输入变量)注释说明语句段 程序语句段特定规则:1.函数m文件第一行必须以单词function作为引导词,必须遵循如下形式:function=()2.m文件的文件名最好是.m3.程序中的变量均为局部变量,
14、不保存在工作空间中。其变量只在函数运行期间有效。nargin和nargout是库函数,可以检查m文件的输入和输出参数的个数如 nargin(sin)在函数m文件中,可以用varargin和varargout实现可变长度的输入和输出参数个数。(注意varargin是cell型的)函数M文件例function s=test(varargin)s=0;for n=1:length(varargin1)s=s+varargin1(n);end调用test(1:10)编写脚本m文件计算1到100的平方和Fourier变换一般信号都是以时间-幅度的形式记录的(时间序列),对它的分析称为时域分析Fourie
15、r变换是把时间序列的不同频率成分提取出来(利用Fourier基底的正交归一和完备性),将信号表示成频率-幅度的形式,对它的分析称为频域分析Fourier变换Fourier变换Matlab中的离散fourier变换fft,ifft,fft2,ifft2,fftn,ifftnY=fft(x)对向量x进行离散fourier变换,若x是矩阵则对每一列分别操作Y=fft(x,n)用n限制x的长度,若x的长度小于n则后面补0,若x的长度大于n,则只对前面n个数进行变换help fft,注意matlab中fft的定义例:fft的应用 t=0:1/512:(4-1/512);%采样时间点n=randn(1,2
16、048);%相应点的噪声s=0.3*sin(2*pi*150*t);%相应点的信号d=n+s;%实际采集的数据subplot(2,1,1);plot(t(1:500),d(1:500)x=fft(d);%数据的DFTsubplot(2,1,2);plot(0:1/4:256-1/4,abs(x(1:1024)直方图n,y=hist(x,k)输入:x是原始数据行向量,k是需要等分的区间数 返回值:n是频数行向量,y是区间中点行向量hist(x,k)输入数据意义同上,返回直方图hist(x)此时k取默认值10标准正态分布a=randn(1,10000);hist(a,100)hold onx=-5
17、:0.1:5;plot(x,(2*pi)(-1/2)*800*exp(-x.2/2),r)画0到1均匀分布的直方图要求:产生10000个在0,1上均匀分布的随机数,直方图分5个区间常用命令mean 均值,median 中位数,range 极差(最大值与最小值之差),std 标准差,var 方差,cov 协方差 生成10000个均值是5,方差是10的随机数,并用上面命令检验实际的均值和方差用蒙特卡罗法计算圆周率n=50000;x=rand(2,n);k=0;for i=1:nif x(1,i)2+x(2,i)2=1k=k+1;endendp=4*k/n用蒙特卡罗法计算积分用蒙特卡罗法计算积分a=
18、rand(2,10000);x=(a(2,:)sin(a(1,:);sum(x)/10000检验1-cos(1)分段线性插值Y=interp1(x0,y0,x)help interp1help splineshgclf resetset(gcf,color,white,menubar,none,.numbertitle,off,name,Fractal Fern)x=.5;.5;h=plot(x(1),x(2),.);darkgreen=0 2/3 0;set(h,markersize,1,color,darkgreen,erasemode,none);axis(-3 3 0 10)axis
19、offstop=uicontrol(style,toggle,string,stop,.background,white);drawnow p =.85 .92 .99 1.00;A1=.85 .04;-.04 .85;b1=0;1.6;A2=.20-.26;.23 .22;b2=0;1.6;A3=-.15 .28;.26 .24;b3=0;.44;A4=0 0;0 .16;cnt=1;ticwhile get(stop,value)r=rand;if r p(1)x=A1*x+b1;elseif r p(2)x=A2*x+b2;elseif r p(3)x=A3*x+b3;else x=A4*x;end set(h,xdata,x(1),ydata,x(2);drawnow cnt=cnt+1;endt=toc;s=sprintf(%8.0f points in%6.3f seconds,cnt,t);text(-1.5,-0.5,s,fontweight,bold);set(stop,style,pushbutton,string,close,callback,close(gcf)谢谢谢谢