收藏 分享(赏)

matlab中的数据处理.doc.doc

上传人:cjc2202537 文档编号:174677 上传时间:2018-03-23 格式:DOC 页数:15 大小:177KB
下载 相关 举报
matlab中的数据处理.doc.doc_第1页
第1页 / 共15页
matlab中的数据处理.doc.doc_第2页
第2页 / 共15页
matlab中的数据处理.doc.doc_第3页
第3页 / 共15页
matlab中的数据处理.doc.doc_第4页
第4页 / 共15页
matlab中的数据处理.doc.doc_第5页
第5页 / 共15页
点击查看更多>>
资源描述

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

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

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

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

5、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 浮点值 双精度数组%s 用空格或分隔符分隔的字符串 字符串数组%q 读取双引号中的字符串,忽略双引号 字符串数组%c

6、读取字符,包括空格 字符串数组例:有数据文本文件“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、xlsread 函数从 Excel 电子表格读取矩阵数据常用格式:num = xlsread(filename) %读取 fi

7、lename 文件中的数据,忽略标题行或列的文本,而当不在标题行或列的单元格是空的,或者包含文本时,xlsread 将在相应位置填上 NaN;num = xlsread(filename, -1) %将在 Excel 窗口打开 filename 文件,可以交互选择工作区中的数据文件;num = xlsread(filename, sheet) %选择工作表 sheet,默认为第一个工作表;num = xlsread(filename, range) %指定工作表中的数据范围,如A4:B5num = xlsread(filename, sheet, range)例:将电子表格 data01.xl

8、s 中的数据载入到 Matlab 工作区 xlsread(d:datadata01) xlsread(d:datadata01,-1) xlsread(d:datadata01,B3:E30)5、使用输入向导输入向导(Import Wizard)是把数据输入到 Matlab 最简单的方法。无须知道被输入数据的格式,只需指定数据文件,向导会自动处理。从菜单“FileImport Data”打开 Import Data 窗口,或者在命令窗口中输入 uiimport也可以打开数据输入向导。第二部分 数据拟合在实际工程应用和科学实践中,经常需要寻求两个(或多个)变量间的关系,而实际却只能测得一些分散的

9、数据点。针对这些分散的数据点,运用某种拟合方法生成一条连续的曲线,这个过程成为曲线拟合。曲线拟合可分为参数拟合和非参数拟合。参数拟合采用最小二乘法,非参数拟合也称插值法。1、多项式拟合p=polyfit(x,y,n) 用 n 次多项式拟合向量数据(x,y)。例:拟合下列数据x 0.1 0.2 0.15 0.0 -0.2 0.3y 0.95 0.84 0.86 1.06 1.50 0.72 x=0.1 0.2 0.15 0 -0.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

10、(p,xx); plot(x,y,or,xx,yy)2、曲线拟合当经验函数不是多项式,而是其它类型的函数时,可以用lsqcurvefit 函数对拟合函数中的未知参数进行估计。c=lsqcurvefit(fun,c0,xdata,ydata)fun 是经验拟合函数,含有未知参数,即具有形式 fun(c,x),c0是未知参数的预估计值,(xdata,ydata)是已知实验数据。例:已知数据表t 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16y 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

11、.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) %求未知参数 tt=1:0.1:16;yy=f(c,tt); hold on plot(tt,yy)也可以经过适当的变量替换,将其他函数转化为多项式拟合。如指数函数 ,取对数:

12、 ,令 ,则bxyaelnlyabxlnyYYA3、拟合工具箱Matlab 中的拟合工具箱是一个更方便、更直观进行曲线拟合的图形界面,用 cftool 指令打开拟合工具箱。界面中主要有 5 个按钮:“Data”按钮:可输出、察看和平滑数据;“Fitting”按钮:拟合数据、比较拟合曲线和数据集“Exclude”按钮:可从拟合数据中排除特殊的数据点;“Ploting”按钮:显示拟合曲线和数据集;“Analysis”按钮:可以做内插法、外推法、微分或积分拟合。拟合效果主要看 2 个参数:SSE(误差平方和)和 R-Square ,SSE 越接近 0,R-Square 越接近 1,拟合效果越好。例:

13、调用 Matlab 中自带的数据文件 census,记录了美国 1790-1990年间的人口,时间间隔为 10 年,找出人口与时间之间的关系。 load census cftool三、多元线性回归问题:设有因变量 y 和 p 个自变量 ,它们具有某种线性12,px关系 12pyx其中 为待定系数, 为随机误差。现有容量为 n 观测数12,p据 ,怎样确定待定系数,1,ijyxnj ,并进行有效性检验?12,p将样本代入关系式,得 ,其中YX112112 2212, ,ppnnppyxxYX Matlab 求解:b,bint,r,rint,stats=regress(Y,X,alpha)其中 a

14、lpha 为显著性水平,省略时为默认值 0.05;输出变量中,b 为的参数估计值,bint 为 b 的置信度为 1-alpha 的置信区间,r 为残差向量 ,也即 ,rint 为 的置信区间,stats 是包含 3 个元YX素的检验统计量,分别是 R-square:相关系数 R 的平方,F-统计量和 p 值。回归效果:R-Square 越接近 1,p 值越接近 0(一般要求 p b,bint,r,rint,stats=regress(y,x)最后得到的回归方程为: 12342.93.530.7580.6yxxxx如果回归方程是形式: ,相当12pyx于增加一个变量 , ,而 。0x012pyx

15、x 01x如上例 x=ones(13,1),x; b,bint,r,rint,stats=regress(y,x)得回归关系式: 123462.405.0.50.190.1yxxxx上机练习1、根据下面的数据进行不同函数的数据拟合,并比较效果:x=0 0.0385 0.0963 0.1925 0.2888 0.385y=0.042 0.104 0.186 0.338 0.479 0.6122、某商品的需求量与消费者的平均收入、上平的价格的统计数据如下,建立回归模型并进行检验,预测平均收入为 1000,价格为 6 时的商品需求。需求量100 75 80 70 50 65 90 100 110 60收入 1000 600 1200 500 300 400 1300 11001300 300价格 5 7 6 6 8 7 5 4 3 93、某人记录了 21 天使用空调器的时间和使用烘干器的次数,并监测电表以计算出每天的耗电量(kWH)与空调器使用的小时数(AC )和烘干器使用的次数(DRYER)之间的关系,建立并检验

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

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

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报