matlab中数据处理

上传人:第*** 文档编号:55890763 上传时间:2018-10-07 格式:PDF 页数:15 大小:227.58KB
返回 下载 相关 举报
matlab中数据处理_第1页
第1页 / 共15页
matlab中数据处理_第2页
第2页 / 共15页
matlab中数据处理_第3页
第3页 / 共15页
matlab中数据处理_第4页
第4页 / 共15页
matlab中数据处理_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《matlab中数据处理》由会员分享,可在线阅读,更多相关《matlab中数据处理(15页珍藏版)》请在金锄头文库上搜索。

1、Matlab 中的数据处理中的数据处理 Matlab 中的各种工具箱最主要是以矩阵或数组作为处理对象, 因 此首先必须将原始数据以矩阵形式加载到 Matlab 的工作空间,然后 对矩阵进行相关操作。 第一部分第一部分 数据输入数据输入 在 Matlab 中创建一个矩阵可以有如下几种途径: 一、在 Matlab 命令窗口直接输入矩阵 例如: A=1 3 0;2 4 3;-3 4 9 说明说明:矩阵或数组的标识符都是 ,矩阵同一行之间的元素用空格或 逗号分隔,不同行之间用分号或回车符分隔。 二、利用 workspace(工作空间)创建或修改矩阵 在工作空间中新建一个空矩阵, 然后双击该矩阵名, 可

2、以像 Office 中的 Excel 电子表格一样进行输入和编辑数据,也可以双击已经存在 于工作空间中的变量名,对其进行修改编辑。 例如: B=; 三、采用复制、粘贴的方式构造矩阵 对于存在于外部文件中的比较规范的数据(排列成矩阵形式) ,可 以先将数据块复制到剪贴板上,然后在 Matlab 中粘贴到相应变量。 举例:1、将 data01.xls 中的数据粘贴到 Matlab 工作空间中的变量 C 中。 2、 将data02.txt中的数据输入到Matlab工作空间中的变量D中。 四、使用输入函数 对于大量的数据,或者格式更加复杂的数据文件,以上方法就不 太方便,此时针对不同格式的数据文件,可

3、以采用相应的输入函数导 入数据。 1、load 函数 装载 Matlab 格式的数据文件(.mat)和文本格式的定界符为空格的 矩形文件。 例:载入文件“data02.txt”中的数据 2、dlmread 函数 将带有定界字符的 ASCII 数字数据读入矩阵 常用格式: M=dlmread(filename)%Matlab 从文件格式中推断定界符,逗号 是默认定界符。 M=dlmread(filename,delimiter),指定定界符。 M=dlmread(filename,delimiter,R,C),从矩形数据的左上角 R 行、C 列的位置开始读入。 注意:矩形数据的开始位置是 0 行

4、 0 列。 M=dlmread(filename,delimiter,range),读取用 range 指定范围的数 据,range=R1 C1 R2 C2,R1C1 是左上角的行列号,R2C2 是右下角 的行列号;range 也可以用如下表示法:range=A1B7。 例:对于 data02.txt 中的数据 dlmread(d:datadata02.txt)%读全部数据 dlmread(d:datadata02.txt,2,3)%读取 3 行 4 列以后的数据, 两 个没有间隔的单引号表示用空格 (不限定重复次数) 作为定界符。 dlmread(d:datadata02.txt,c1g4)

5、%读取 C1G4 范围内的数据 dlmread(d:datadata01.txt,-)%其他定界符 3、textread 函数 输入含有字母和数字的混合数据 常用格式: A,B,C,. = textread(filename,format)%按 format 指 定的格式读取 filename 文件中的全部内容 A,B,C,. = textread(filename,format,N) %只重复 N 次 format 格式 按照 format 对应的格式,分别输出数据到变量 A、B、C。 Format 可包含的参数: 格式作用输出 %d带符号整数双精度数组 %u无符号整数双精度数组 %f浮点值

6、双精度数组 %s用空格或分隔符分隔的字符串字符串数组 %q读取双引号中的字符串,忽略双引号字符串数组 %c读取字符,包括空格字符串数组 例:有数据文本文件“data04.txt”,读取其中的内容 names, types, x, y,z, answer = textread(d:/data/data04.txt,%s%s%f%d%f%s) 对于只包含纯数字数据的文本文件, textread函数当然也能读取。 A = textread(d:/data/data02.txt) 与 textread 函数类似的函数还有 textscan,但功能更丰富,使 用更灵活,可参考相关帮助。 4、xlsrea

7、d 函数 从 Excel 电子表格读取矩阵数据 常用格式: num = xlsread(filename) %读取 filename 文件中的数据,忽略标题 行或列的文本,而当不在标题行或列的单元格是空的,或者包含文本 时,xlsread 将在相应位置填上 NaN; num = xlsread(filename, -1-1) %将在 Excel 窗口打开 filename 文件, 可以交互选择工作区中的数据文件; num = xlsread(filename, sheet) %选择工作表 sheet,默认为第一 个工作表; num = xlsread(filename, range) %指定工

8、作表中的数据范围, 如A4:B5 num = xlsread(filename, sheet, range) 例:将电子表格 data01.xls 中的数据载入到 Matlab 工作区 xlsread(d:datadata01) xlsread(d:datadata01,-1) xlsread(d:datadata01,B3:E30) 5、使用输入向导 输入向导 (Import Wizard) 是把数据输入到 Matlab 最简单的方法。 无须知道被输入数据的格式,只需指定数据文件,向导会自动处理。 从菜单“FileImport Data”打开 Import Data 窗口,或者在命 令窗口中

9、输入 uiimport 也可以打开数据输入向导。 第二部分第二部分数据拟合数据拟合 在实际工程应用和科学实践中,经常需要寻求两个(或多个)变 量间的关系,而实际却只能测得一些分散的数据点。针对这些分散的 数据点,运用某种拟合方法生成一条连续的曲线,这个过程成为曲线 拟合。曲线拟合可分为参数拟合和非参数拟合。参数拟合采用最小二 乘法,非参数拟合也称插值法。 1、多项式拟合 p=polyfit(x,y,n)用 n 次多项式拟合向量数据(x,y)。 例:拟合下列数据 x0.10.20.150.0-0.20.3 y0.950.840.861.061.500.72 x=0.1 0.2 0.15 0 -0

10、.2 0.3;y=0.95 0.84 0.86 1.06 1.50 0.72; p=polyfit(x,y,2); xx=-0.2:0.01:0.3;yy=polyval(p,xx); plot(x,y,or,xx,yy) 2、曲线拟合 当经验函数不是多项式, 而是其它类型的函数时, 可以用 lsqcurvefit 函数对拟合函数中的未知参数进行估计。 c=lsqcurvefit(fun,c0,xdata,ydata) fun 是经验拟合函数,含有未知参数,即具有形式 fun(c,x),c0 是未知参数的预估计值,(xdata,ydata)是已知实验数据。 例:已知数据表 t1 23 4567

11、8910111213141516 y 4 6.4 8 8.4 9.28 9.5 9.7 9.86 10 10.2 10.32 10.42 10.5 10.55 10.58 10.6 用适当的曲线进行数据拟合。 先画散点图,根据散点图确定拟合曲线为对数函数lnbtya t=1:16; y=4 6.4 8 8.4 9.28 9.5 9.7 9.86 10 10.2 10.32 10.42 10.5 . 10.55 10.58 10.6; plot(t,y,or) f=inline(c(1)+c(2)*log(t),c,t)%建立拟合函数 c=lsqcurvefit(f,1,1,t,y)%求未知参数

12、 tt=1:0.1:16;yy=f(c,tt); hold on plot(tt,yy) 也可以经过适当的变量替换,将其他函数转化为多项式拟合。如 指数函数 bx yae, 取对数:lnlnyabx, 令ln yY, 则YAbx 3、拟合工具箱 Matlab 中的拟合工具箱是一个更方便、 更直观进行曲线拟合的图形 界面,用 cftool 指令打开拟合工具箱。 界面中主要有 5 个按钮: “Data”按钮:可输出、察看和平滑数据; “Fitting”按钮:拟合数据、比较拟合曲线和数据集 “Exclude”按钮:可从拟合数据中排除特殊的数据点; “Ploting”按钮:显示拟合曲线和数据集; “A

13、nalysis”按钮:可以做内插法、外推法、微分或积分拟合。 拟合效果主要看 2 个参数: SSE (误差平方和)和 R-Square, SSE 越接近 0,R-Square 越接近 1,拟合效果越好。 例:调用 Matlab 中自带的数据文件 census,记录了美国 1790-1990 年间的人口,时间间隔为 10 年,找出人口与时间之间的关系。 load census cftool 三、多元线性回归 问题:设有因变量 y 和 p 个自变量 12 , p x xx ,它们具有某种线性 关系 1 122pp yxxx 其中 12 , p 为待定系数,为随机误差。现有容量为 n 观测数 据 ,

14、1,2,1,2, iij y x in jp , 怎 样 确 定 待 定 系 数 12 , p ,并进行有效性检验? 将样本代入关系式,得Y X ,其中 1111211 2212222 12 , p p pnnnpp yxxx yxxx YX yxxx Matlab 求解: b,bint,r,rint,stats=regress(Y,X,alpha) 其中 alpha 为显著性水平, 省略时为默认值 0.05;输出变量中, b 为 的参数估计值,bint 为 b 的置信度为 1-alpha 的置信区间,r 为残差向 量YX,也即,rint 为的置信区间,stats 是包含 3 个元素的 检验统

15、计量, 分别是 R-square: 相关系数 R 的平方, F-统计量和 p 值。 回归效果:R-Square 越接近 1,p 值越接近 0(一般要求 p b,bint,r,rint,stats=regress(y,x) 最后得到的回归方程为: 1234 2.1931.15330.75850.4863yxxxx 如果回归方程是形式: 01 122pp yxxx ,相当 于增加一个变量 0 x, 001 122pp yxxxx ,而 0 1x 。 如上例 x=ones(13,1),x; b,bint,r,rint,stats=regress(y,x) 得回归关系式: 1234 62.4054 1.55110.51020.10190.1441yxxxx 上机练习上机练习 1、根据下面的数据进行不同函数的数据拟合,并比较效果: x=0 0.0385 0.0963 0.1925 0.2888 0.385 y=0.042 0.104 0.186 0.338 0.479 0.612 2、某商品的需求量与消费者的平均收入、上平的价格的统计数据如 下,建立回归模型并进行检验,预测平均收入为 1000,价格为 6 时 的商品需求。 需求 量 100758070

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号