Matlab数值分析、数据处理基础入门

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第二讲数据处理Matlab和Origin处理实验数据主要特点MATLAB(MATrixLABoratory)具有用法简易、可灵活运用、程式结构强又兼具延展性。功能强的数值运算先进的资料视觉化功能高阶但简单的程式环境开放及可延伸的架构丰富的程式工具箱优化工具包(OptimizationToolbox)、控制工具包(ControlToolbox)、通信工具包(CommunicationToolbox)、图象处理工具包(ImageProcessingToolbox)、统计工具包(StatisticToolbox)应用线性代数自动控制理论数据统计数字信号处理时间序列分析动态系统仿真图形处理合成、化学计量分析主要应用2.1.1.2Matlab处理实验数据基本操作基本运算单元矩阵单个数据标量或1×1的矩阵单行或单列的矩阵向量(行向量或列向量)大气压力p为754mmHg,p即为为标量。不同时刻t对应某物理量y,t和y即为2个向量。t和y放在一起(第一列为时间,第二列为y),用data来表示,则data就为2列的矩阵,行数为t或y的个数(它们必须相等)。工作界面2.1.2.1数据输入直接输入标量:p=754;向量:t=[5,10,15,21,25,30]--如果是行向量,数据之间用空格或“,”分隔。如果是列向量,数据间之间用“;”分隔。矩阵:每行的数据之间用空格或“,”分隔,分列时用“;”。1)输入向量或矩阵,“[”、“]”(方括)是必须的。2)如果在语句最后加入“;”作为输入结束,则回车后输入的结果不回显,否则将回显2.1.2.1数据输入文件读入直接输入法只适合少量数据输入,对于大量的数据,或由外部程序产生的,或由计算机自动采集的数据,主要以文件形式存在。Matlab可以从文件读入数据。主要介绍ACSII文件输入文件格式如下:如果有2个以上的向量,每一向量为一列(或一行),数据之间用“,”或空格分开。2.1.2.1数据输入如热敏电阻的电阻值随温度的变化的数据格式如下,保存文件名为:example.txt,路径为d:\data下在Matlab中要使用时,使用命令调入数据:loadc:\report\example.txt以上数据将以example为名的2列矩阵被调入Matlab工作空间。输入example并回车,将显示出调入数据的情况。从方便和习惯出发,我们用向量T和R来处理数据,分别存放温度和电阻的数据:T=example(:,1);%将第一列数据(温度)存放在向量T中;R=example(:,2);%将第二列数据(电阻)存放在向量R中。2.1.2.1数据输入如果在data_1.txt中的数据是按“行”方式存放的(第一行为温度,第二行为电阻),则操作应当是:T=data_1(1,:);%第一行数据放在T中。R=data_1(2,:);%第二行数据放在R中。括号内的参数是行和列的表达式,其中用“,”区分行和列,“,”之前表示行,“,”之后表示列。对于行(或列)的具体值用“n1:n2”的形式,表示从第n1行(列)到第n2行(列),如省略n1、n2表示全部行(列)。2.1.2.1数据输入也可以用.m文件准备上面的数据:用纯文本编辑器(如记事本),编辑以下内容。p=754;t=[有关数据];y=[有关数据];将以上内容保存为data_2.m使用时,在Matlab中输入:data_2%即将p、t、y数据调入工件空间。注意此文件应保存在Matlab的搜索路径内(一般在Matlab目录以下)。如果保存在用户自己的工作目录,如d:\mywork,则应在调用此数据之前先运行cdd:\mywork,或将该目录加入到Matlab的搜索路径中:path(path,'d:\mywork')。2.1.2.2有关数据分析函数corrcoef(x)求相关系数sort(x)按升序排列cov(x)协方差矩阵std(x)列的标准偏差cumprod(x)列累计积sum(x)各列的元素和cumsum(x)列累计和max(x)各列的最大值diff(x)计算元素之间差min(x)各列的最小值mean(x)均值或列的平均值prod(x)列元素的积median(x)列的中值2.1.2.2有关数据分析函数若x为存放某一物理量多次测量的结果的向量,std(x)如t为列向量时mt=mean(t),求出t的平均值并赋于mt2.1.2.3Matlab中的运算Matlab中输入运算表达式(5*2+1.3-0.8)*10/25ans=4.2000加减乘右除左除乘方+-*/\^运算符向量之间运算不用对每个数据进行操作,只需输入向量运算的表达式,即可完成所有对应元素的运算,被运算的两向量必须具有相同的结构。但上述运算符中的“*”、“/”、“^”前应加“.”,即为:“.*”、“./”、“.^”,否则,是按矩阵的运算规则进行。T1=1./(T+273.2)%将摄氏温度转变绝对温度的倒数。在运算时可以使用括号,但只能是“圆”括号。运算中可以使用各种函数,如:sqrt()、log()(自然对数)、log10()(常用对数)、sin()等等。R1=log(R);%电阻值取自然对数(ln)。2.1.3Maltab的图形功能2.1.3.1绘图语句及图形窗口的选择和建立plot(x,y,‘参数’)x、y为表达自变量与函数的值的向量,参数线型、标记、颜色同一坐标系统中画多个图形,Plot(x,y,’参数‘,x1,y1,’参数‘)例:绘一条二维曲线(y=et/2.sin3t)。t=0:pi/50:4*pi;%定义横轴向量,从0到4π,每个数据间相差π/50。y=exp(t/2).*sin(3*t);计算纵轴向量y。plot(t,y)%绘制二维图形subplot(m,n,i)产生一个m行n列的m×n个小图形窗口,选择第i个小窗口为当前输出窗口,i在1~m×n之间。2.1.3.2选择不同的坐标系统plot:xy坐标都是线性坐标系;loglog:xy坐标都是对数坐标系;semilogx:x坐标轴是对数坐标系;semilogy:y坐标轴是对数坐标系;plotyy:有两个y坐标轴,一个在左边,一个在右边。polar:极坐标可以使用坐标转换函数,进行坐标转换。cart2pol:笛卡尔坐标转换为极坐标或圆柱坐标cart2sph:笛卡尔坐标转换为球坐标pol2cart:极坐标或圆柱坐标转换为笛卡尔坐标sph2cart:球坐标转换为笛卡尔坐标2.1.3.3绘图参数选择绘图参数点或线的颜色标记点的形式线型'y'(黄)'.'(点)'-'(实线)m'(紫红)'o'(圆圈)':'(点线)'c'(青)'x'(叉)'-.'(点划线)'r'(红)'+''–'(虚线)'g'(绿)'*''b'(兰)'s'(正方形)'w'(白)'d'(菱形)'k'(黑)'v'(向下三角形)'^'(向上三角形)''(向左三角形)''(向右三角形)'p'(五角星)'h'(六角形)2.1.3.4数轴的数据范围设置在plot等绘图函数中,有根据输出的数据自动设定数轴界限的功能,但有时手动的调节也还是必不可少的。axis([xmin,xmax,ymin,ymax])设定了两个数轴的范围,其中可以用Inf,-Inf来让Matlab自动寻找合适的界限。2.1.3.5图形的标注title:标注图形的标题。例:title(‘反应进度’)legend:标注图例。例:lengend(‘测量点’,’拟合曲线’);其位置与plot中位置对应。xlabel:对x轴标注。例:xlabel(‘时间’)ylabel:对y轴标注。例:ylabel(‘电导’)text:在指定位置写上文字内容。例:text(2,4,’实验温度:25’)gtext:用鼠标给文字指定位置。gridon;给图形加网格线。2.1.4拟合和插值Polyfit求解最小二乘曲线拟合问题polyfit(x,y,n)x,y为要拟合的数据n为希望最佳拟合数据的多项式的阶次n=1线性近似,线性回归。n1多阶拟合最好转变为直线关系来处理。2.1.4.1拟合例:拟合热敏电阻R-T曲线R-T数据已存放在文件中。在Matlab中用命令方式一步步地操作:loadc:\report\rt1.txt%将数据调入名为rt1的矩阵;rt1%查看rt1的内容;T=rt1(:,1)+273.15%将rt1的第一列温度数据转换为绝对温度并置于向量T;R=rt1(:,2)%将rt1的第二列电阻数据置于向量R;为了直观地看到R-T关系,可画出图形:plot(T,R,’+’)%看R-T曲线,用“+”号表示数据点(图b-1-4)。R-T的关系,理论上应为:R=aeb/T。故先对理论公式作一点变换:取对数,lnR=lna+b/T,然后相应处理数据:R1=log(R)%R的值取自然对数(ln),T1=1./T%T值求倒数,注意有一个“.”;p1=polyfit(T1,R1,1)%T与lnR进行线性拟合,求出拟合多项式的系数,p1为1行2列的矩阵,p1(1)为一次项系数(b),p1(2)为常数项(lna);p1=1.0e+003*3.2791-0.0094则R1=3.2791×103T1-9.4即lnR=3.2791×103/T-9.4表示电阻和温度的关系。R2=polyval(p1,T1)%计算拟合的函数值,再在同一图上比较拟合值与测试值的区别:plot(T1,R2,T1,R1,’+’)legend(‘拟合曲线’,’测试值’)%图例,拟合结果用实线表示,测试数据用“+”标出。可以看出拟合结果是满意的可以将完整的结果做成Matlab的m文件,就可以直接调用了。m文件的内容即为上述的命令行的集合,以ASCII形式存放,扩展名为m。为了让图形更完善,可以添加关于坐标轴、标题、文字、网格线等。在对实验数据进行拟合时,决定自变量与函数的关系的原则首先是根据理论上是什么关系,然后尽可能地将其变换为线性关系进行拟合。如果不能获得线性的关系,或者实验数据不知其理论关系是怎样的,则要根据其图象采用适当的多项式或其它关系进行拟合试验,以找到适当的函数关系,这也就是获得经验公式的一般方法。2.1.4.2插值插值对数据点之间函数的估值方法拟合一样,插值有多种方法,根据所作的假设进行选择。而且,可以在一维以上空间中进行插值。一维插值函数是interp1二维插值函数是interp2interp1的缺省用法是由interp1(x,y,xo)来描述,这里x是自变量,y是应变量,xo是进行插值的一个数值数组。也就是说,将测得的多个电势数据存放在e1中,则t1中即是对应的所有温度的值。这里使用假定为线性插值。若不采用直线连接数据点,可采用某些更光滑的曲线来拟合数据点。最常用的方法是用一个3阶多项式,即3次多项式,来对相继数据点之间的各段建模,每个3次多项式的头两个导数与该数据点相一致。这种类型的插值被称为3次样条或简称为样条插值。只需在函数interp1中加上“’spline’”参数即可。t1=interp1(E,T,e1,'spline')拟合和插值函数polyfit(x,y,n)用n阶多项式y=f(x)对数据进行最小二乘拟合Polyval(p,x)多项式p在自变量为x时的值interp1(x,y,xo)1维线性插值,x=xo时的y值interp1(x,y,xo,'spline')1维3次样条插值interp1(x,y,xo,'cubic')1维3次插值interp2(x,y,Z,xi,yi)2维线性插值,x=xi,y=yi时Z的值interp2(x,y,Z,xi,yi,'cubic')2维3次插值interp2(x,y,Z,xi,yi,'nearest')2维最近邻插值2.1.5MATLAB数据的输出日志命令(diary)产生日志文件使用diaryoff命令关闭日志可以如下操作:diaryfilename……..(操作)diaryoffa默认保存在matlab\bin目录下,文件名为di

1 / 68
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功