1、第二讲 数据处理,Matlab和Origin处理实验数据,主要特点,MATLAB (MATrix LABoratory)具有用法简易、可灵活运用、程式结构强又兼具延展性。,功能强的数值运算先进的资料视觉化功能高阶但简单的程式环境开放及可延伸的架构丰富的程式工具箱,优化工具包(Optimization Toolbox)、 控制工具包(Control Toolbox)、 通信工具包(Communication Toolbox)、 图象处理工具包(Image Processing Toolbox)、 统计工具包(Statistic Toolbox),主要应用,应用线性代数 自动控制理论 数据统计 数
2、字信号处理 时间序列分析 动态系统仿真 图形处理 合成、化学计量分析,2.1.1.2 Matlab 处理实验数据基本操作,基本运算单元 矩阵 单个数据 标量或11的矩阵 单行或单列的矩阵 向量(行向量或列向量)大气压力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 -如果是行向量,数据之间用空格或“,”分隔。如果是列向量,数据
3、间之间用“;”分隔。 矩阵:每行的数据之间用空格或“,”分隔,分列时用“;”。 1)输入向量或矩阵,“”、“”(方括)是必须的。 2)如果在语句最后加入“;”作为输入结束,则回车后输入的结果不回显,否则将回显,2.1.2.1 数据输入,文件读入 直接输入法只适合少量数据输入,对于大量的数据,或由外部程序产生的,或由计算机自动采集的数据,主要以 文件形式存在。Matlab可以从文件读入数据。 主要介绍ACSII文件输入 文件格式如下: 如果有2个以上的向量,每一向量为一列(或一行),数据之间用“,”或空格分开。,2.1.2.1 数据输入,如热敏电阻的电阻值随温度的变化的数据格式如下,保存文件名为
4、:example.txt,路径为d:data下,在Matlab中要使用时,使用命令调入数据: load c:reportexample.txt 以上数据将以example为名的2列矩阵被调入Matlab工作空间。输入example并回车,将显示出调入数据的情况。,从方便和习惯出发,我们用向量T和R来处理数据,分别存放温度和电阻的数据: T=example (:,1); %将第一列数据(温度)存放在向量T中; R=example (:,2); %将第二列数据(电阻)存放在向量R中。,2.1.2.1 数据输入,如果在data_1.txt中的数据是按“行”方式存放的(第一行为温度,第二行为电阻),则
5、操作应当是: 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数据调入工件空间。,注意此
6、文件应保存在Matlab的搜索路径内(一般在Matlab目录以下)。如果保存在用户自己的工作目录,如d:mywork,则应在调用此数据之前先运行 cd d:mywork,或将该目录加入到Matlab的搜索路径中:path(path,d:mywork)。,2.1.2.2 有关数据分析函数,2.1.2.2 有关数据分析函数,若x为存放某一物理量多次测量的结果的向量, std(x),如t为列向量时,mt=mean(t),求出t的平均值并赋于mt,2.1.2.3 Matlab中的运算,Matlab中输入运算表达式,(5*2+1.3-0.8)*10/25ans =4.2000,运算符,向量之间运算不用对
7、每个数据进行操作,只需输入向量运算的表达式,即可完成所有对应元素的运算,被运算的两向量必须具有相同的结构。但上述运算符中的“*”、“/”、“”前应加“.”,即为:“.*”、“./”、“.”,否则,是按矩阵的运算规则进行。,T1=1./(T+273.2) %将摄氏温度转变绝对温度的倒数。,在运算时可以使用括号,但只能是“圆”括号。运算中可以使用各种函数,如:sqrt()、log()(自然对数)、log10()(常用对数)、sin()等等。,R1=log(R); %电阻值取自然对数(ln)。,2.1.3 Maltab的图形功能,2.1.3.1 绘图语句及图形窗口的选择和建立 plot(x,y,参数
8、)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列的mn个小图形窗口,选择第i个小窗口为当前输出窗口,i在1mn之间。,2.1.3.2 选择不同的坐标系统,plot:xy坐标都是线性坐标系; loglog: xy坐标都是对数坐标系; semil
9、ogx: x坐标轴是对数坐标系; semilogy: y坐标轴是对数坐标系; plotyy: 有两个y坐标轴,一个在左边,一个在右边。 polar: 极坐标,可以使用坐标转换函数,进行坐标转换。,cart2pol:笛卡尔坐标转换为极坐标或圆柱坐标 cart2sph:笛卡尔坐标转换为球坐标 pol2cart:极坐标或圆柱坐标转换为笛卡尔坐标 sph2cart:球坐标转换为笛卡尔坐标,2.1.3.3 绘图参数选择,绘图参数,2.1.3.4 数轴的数据范围设置,在plot等绘图函数中,有根据输出的数据自动设定数轴界限的功能,但有时手动的调节也还是必不可少的。axis(xmin,xmax,ymin,y
10、max)设定了两个数轴的范围,其中可以用Inf,-Inf来让Matlab自动寻找合适的界限。,2.1.3.5图形的标注,title:标注图形的标题。例:title(反应进度) legend:标注图例。例:lengend(测量点,拟合曲线);其位置与plot中位置对应。 xlabel: 对x轴标注。例:xlabel(时间) ylabel: 对y轴标注。例:ylabel(电导) text:在指定位置写上文字内容。例:text(2,4,实验温度:25) gtext:用鼠标给文字指定位置。 grid on;给图形加网格线。,2.1.4拟合和插值,Polyfit 求解最小二乘曲线拟合问题,polyfit
11、(x,y,n) x,y为要拟合的数据 n为希望最佳拟合数据的多项式的阶次 n=1 线性近似,线性回归。 n1 多阶拟合 最好转变为直线关系来处理。,2.1.4.1 拟合,例:拟合热敏电阻R-T曲线,R-T数据已存放在文件中。在Matlab中用命令方式一步步地操作:,load c:reportrt1.txt %将数据调入名为rt1的矩阵; rt1 %查看rt1的内容; T=rt1(:,1) +273.15 %将rt1的第一列温度数据转换为绝对温度并置于向量T; R=rt1(:,2) %将rt1的第二列电阻数据置于向量R;为了直观地看到R-T关系,可画出图形: plot(T,R,+) %看R-T曲
12、线,用“+”号表示数据点(图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.2791103T1-9.4 即lnR=3.2791103/T-9.4表示电阻和温度的关系。
13、,R2=polyval(p1,T1) %计算拟合的函数值,再在同一图上比较拟合值与测试值的区别: plot(T1,R2,T1,R1,+) legend(拟合曲线,测试值) %图例,拟合结果用实线表示,测试数据用“+”标出。可以看出拟合结果是满意的,可以将完整的结果做成Matlab的m文件,就可以直接调用了。m文件的内容即为上述的命令行的集合,以ASCII形式存放,扩展名为m。为了让图形更完善,可以添加关于坐标轴、标题、文字、网格线等。,在对实验数据进行拟合时,决定自变量与函数的关系的原则首先是根据理论上是什么关系,然后尽可能地将其变换为线性关系进行拟合。 如果不能获得线性的关系,或者实验数据不
14、知其理论关系是怎样的,则要根据其图象采用适当的多项式或其它关系进行拟合试验,以找到适当的函数关系,这也就是获得经验公式的一般方法。,2.1.4.2 插值,插值 对数据点之间函数的估值方法,拟合一样,插值有多种方法,根据所作的假设进行选择。而且,可以在一维以上空间中进行插值。,一维插值函数是interp1 二维插值函数是interp2,interp1的缺省用法是由interp1(x, y, xo)来描述,这里x是自变量,y是应变量,xo是进行插值的一个数值数组。也就是说,将测得的多个电势数据存放在e1中,则t1中即是对应的所有温度的值。这里使用假定为线性插值。,若不采用直线连接数据点,可采用某些
15、更光滑的曲线来拟合数据点。最常用的方法是用一个3阶多项式,即3次多项式,来对相继数据点之间的各段建模,每个3次多项式的头两个导数与该数据点相一致。这种类型的插值被称为3次样条或简称为样条插值。只需在函数interp1中加上“spline”参数即可。t1=interp1(E, T, e1, spline ),拟合和插值函数,2.1.5 MATLAB数据的输出,日志命令(diary)产生日志文件 使用diary off命令关闭日志 可以如下操作:(操作) diary off,2.1.5.2 保存图形,在图形窗口选择EditCopy,将图形复制到剪贴板,即可粘贴到Word或画图板中进行处理了。 键盘
16、上的“Print Screen”键将整个屏幕复制到剪贴板,然后在画图板中进行处理。 Matlab也提供了直接生成图形文件的命令: print dbitmap ,生成的图形文件为bitmap格式,所以文件的扩展名应取为.bmp。 !!使用print命令时,注意检查FilePreferencesCopying Options中“白背景”选项,选中。否则粘贴出的图形将是黑背景。若忽略filename 则复制到剪贴板。,2.1.5.3 数据保存,产生的数据也可简单地用复制的办法,粘贴到其它的字处理文挡中进行处理; 使用Matlab的Save命令: save -ascii,如不用-ascii参数,将以2
17、进制格式保存,默认扩展名为.mat。下次需要使用可用load命令调入,即可使用所有保存过的变量。同样,如果Filename不指定路径,将存放于matlabbin目录中。,Origin 程序应用,Origin是美国Microcal公司出的数据分析和绘图软件,现在的最高版本为7.5 使用简单,采用直观的、图形化的、面向对象的窗口菜单和工具栏操作,全面支持鼠标右键、支持拖方式绘图等,数据分析 数据的排序、调整、计算、统计、频谱变换、曲线拟合 绘图 基于模版,提供几十种二维和三维绘图模板而且允许用户自己定制模板,工作界面,菜单栏,菜单栏的结构取决于当前的活动窗口,工作表菜单,绘图菜单,矩阵窗口,菜单简
18、要说明,File 文件功能操作 打开文件、输入输出数据图形等 Edit 编辑功能操作 包括数据和图像的编辑等,比如复制粘贴清除等,特别注意undo功能 View 视图功能操作 控制屏幕显示,Plot 绘图功能操作 主要提供5类功能: 1、几种样式的二维绘图功能,包括直线、描点、直线 2、三维绘图 加符号、特殊线符号、条形图、柱形图、特殊条形图柱形图和饼图 3、气泡彩色映射图、统计图和图形版面布局 4、特种绘图,包括面积图、极坐标图和向量 5、模板:把选中的工作表数据到如绘图模板,Column 列功能操作 比如设置列的属性,增加删除列等 Graph 图形功能操作 主要功能包括增加误差栏、函数图、
19、缩放坐标轴、交换X、Y轴等 Data 数据功能操作 Analysis 分析功能操作对工作表窗口:提取工作表数据;行列统计;排序;数字信号处理(快速傅里叶变换FFT、相关Corelate、卷积Convolute、解卷Deconvolute);统计功能(T检验)、方差分析(ANOAV)、多元回归(Multiple Regression);非线性曲线拟合等对绘图窗口:数学运算;平滑滤波;图形变换;FFT;线性多项式、非线性曲线等各种拟合方法,Plot3D 三维绘图功能操作 根据矩阵绘制各种三维条状图、表面图、等高线等 Matrix 矩阵功能操作 对矩阵的操作,包括矩阵属性、维数和数值设置,矩阵转置和
20、取反,矩阵扩展和收缩,矩阵平滑和积分等 Tools 工具功能操作对工作表窗口:选项控制;工作表脚本;线性、多项式和S曲线拟合对绘图窗口:选项控制;层控制;提取峰值;基线和平滑;线性、多项式和S曲线拟合,Format 格式功能操作 对工作表窗口:菜单格式控制、工作表显示控制,栅格捕捉、调色板等对绘图窗口:菜单格式控制;图形页面、图层和线条样式控制,栅格捕捉,坐标轴样式控制和调色板等 Window 窗口功能操作 控制窗口显示 Help 帮助,基本操作,作图的一般需要一个项目Project来完成,FileNew 保存项目的缺省后缀为:OPJ 自动备份功能:ToolsOptionOpenClose选项
21、卡“Backup Project Before Saving” 添加项目:FileAppend 刷新子窗口:如果修改了工作表或者绘图子窗口的内容,一般会自动刷新,如果没有请WindowRefresh,数据输入,手动输入 从ASCII文档导入 从Excel等文件导入,数据输入,一般来说数据按照X Y坐标存为两列,假设文件为sindata.dat,如下格式:x sin(x) 0.0 0.000 0.1 0.100 0.2 0.199 0.3 0.296 ,输入数据请对准data1表格点右键调出如下窗口,然后选择Inport ASCII找到sindata.dat文件打开就行,绘制简单二维图,按住鼠标
22、左键拖动选定这两列数据,用下图最下面一排按钮就可以绘制简单的图形,按从左到右三个按钮做出的效果分别如下:,设置列属性,双击A列或者点右键选则Properties,这里可以设置一些列的属性。,基本运算,数据浏览,Data Selector 选择一段数据曲线,作出标志 一是鼠标,而是利用Ctrl,Ctrl+Shift与左右箭头的组合 Data Reader 读取数据曲线上的选定点的XY值 Screen Reader 读取绘图窗口内选定点的XY值 Enlarger 局部放大曲线 Zoom 缩放 注意利用方向键,以及与Ctrl和Shift的组合,Screen Reader,Data Reader,Da
23、ta Selector,定制图形,用鼠标双击图线调出下面窗口,定制坐标轴,双击坐标轴得到,下图,添加文本说明,用左侧按纽T,如果想移动位置,可以用鼠标拖动。注意利用Symbol Map可以方便的添加特殊字符。做法:在文本编辑状态下,点右键,然后选择:Symbol Map。,利用左侧的菜单可以作出很多特殊要求的图像,比如两点线段图 三点线段图等,水平(垂直)阶梯图、样条曲线图、垂线图等下面给出一个演示,具体的自己捉摸,非线性拟合,首先激活绘图窗口,选择菜单命令Analysis,则可以看到,非线性最小平方拟合NLSF,这是Origin提供的功能最强大、使用也最复杂的拟合工具。方法是Analysis
24、-Non-Linear Curve FitAdvanced Fitting Tools或者Fitting Wizad 具体的请自己体会。,高级模式 利用Function-new可以自定义拟合函数,基本模式,利用new可以自定义拟合函数,Wizad模式 高级模式中利用ActionDataset设置,在基本模式中用Select Dataset设置。,数据分析,简单数学运算(Simple Math) 统计(Statistics) 快速傅里叶变换(FFT) 平滑和滤波(Smoothing and Filtering) 基线和峰值分析(Baseline and Peak Analysis),算术运算 这
25、是实现Y=Y1(+-*/)Y2的运算,其中Y和Y1为数列,Y2为数列或者数字。 命令为:AnalysisSimple Math,插值,插值是指在当前激活的数据曲线的数据点之间利用某种方法估计置信数据点。AnalysisInterpolate and Extrapolate,统计,平均值(Mean) 标准差(Standard Deviation,Std,SD) 标准误差(Standard Error of the Mean) 最小值(Minimum) 最大值(Maximum) 百分位数(Percentiles) 直方图(Histogram) T检验(T-test for One or Two Populations) 方差分析(One-way ANOVA) 线性、多项式和多元回归分析(Linear、Polynomial and Multiple Regression Analysis),举例,谢谢各位!,