第十一讲(数据处理)

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

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

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

资源描述

1第十一讲文件和数据的导入和导出1、数据导入一般用于数据分析的数据规模较大,在分析数据之前,要把数据导入到Matlab工作区。单击File菜单下的ImportData子菜单,打开导入窗口,可以把数据导入到workspace中。2、数据保存(save命令)1)Savefilename%把工作区中所有变量列表2)Savefilenamevariable1variable2…例如:clearx=0.5;y=4*x;savexyfile3)Savefilenamevariable1variable2…-asciii使用save命令用于将活动交互环境中的变量保存到指定文件名的文件,前面两种形式创建二进制的.mat文件,包含变量名,大小和存储在矩阵中的数据。.ascii格式的save命令用来创建纯文本文件,可以用文本编辑器打开.例如:x=0:5;y=5*x;xy=[x',y'];savexyvals.txtxy-ascii2它保存的只是矩阵中元素的值,.mat形式的文件写入的内容还包括变量名,变量大小等.当变量还要读入Matlab时,使用.mat形式,它创建的变量是结构体,当变量要输出到其他程序,如电子表格和文字处理时,使用ascii格式,它创建的变量是一个矩阵.3、文件的打开(1)open不同类型文件后缀名不同,如filename.m,filename.mat(数据文件),filename.pdf(pdf文件),filename.fig(图形文件),使用格式:open('filename'):%打开文件filename。打开当前路径上的文件,可以直接用open函数打开,例如:open学位论文评议书.pdf或open('学位论文评议书.pdf'),open('图形.fig'),open('论文答辩.ppt')。如果文件不在当前路径上,打开它需要指定路径名,例如:open('D:\temp\data.mat')(2)loadload命令与save命令是成对的,load命令把数据读入matlab中。loadfilename%filename.mat被打开,其中的变量被载入工作区loadfilenamevar1var2%%filename.mat被打开,其中的变3量var1var2被载入工作区也可以使用:load(‘filename’)这里filename可以是mat格式文件或纯文本文件(扩展名是.dat或.txt)。例:clearx=linspace(0,2*pi);y=cos(x);z=sin(x);savetrigvar%创建trigvar.mat文件clearwhosloadtrigvarwhosNameSizeBytesClassAttributesx1x100800doubley1x100800doublez1x100800doubleD=load('trigvar')%当文件是.mat格式,D是一个结构体D=x:[1x100double]4y:[1x100double]z:[1x100double]C=load('xyvals.txt')%当文件是纯文本文件时,C是包含文件中所有数据的矩阵C=0015210315420525练习:在记事本中建立一个数据文件,使用load导入到matlab中,注意路径。注:load命令的一个重要应用是从纯文本文件中读入数据进行分析和画图。此时,要求文件中各列等长,且各列中的数据都是数字。不可以包括文本,如列标题。例:实际应用例子在NMM工具箱中的data目录下的文件文件pdxTemp.dat是已有的一个文件,它包含俄勒冈州波特兰市的历史平均气温typepdxTemp.dat5145.3633.8439.60%第一列为月份,第二列到第四列250.8735.9843.43分别是平均最高气温、平均最低气温、356.0538.5547.30和每月的平均温度。460.4941.3650.92567.1746.9257.05673.8252.8063.31779.7256.4368.07880.1456.7968.47974.5451.8363.181064.0844.9554.521152.6639.5446.101245.5934.7540.17在命令窗口中进行如下操作:D=load('pdxTemp.dat')D=1.000045.360033.840039.60002.000050.870035.980043.43003.000056.050038.550047.30004.000060.490041.360050.92005.000067.170046.920057.05006.000073.820052.800063.31007.000079.720056.430068.070068.000080.140056.790068.47009.000074.540051.830063.180010.000064.080044.950054.520011.000052.660039.540046.100012.000045.590034.750040.1700month=D(:,1);%拷贝第一列到monthT=D(:,2:4)%拷贝第二到四列到TT=45.360033.840039.600050.870035.980043.430056.050038.550047.300060.490041.360050.920067.170046.920057.050073.820052.800063.310079.720056.430068.070080.140056.790068.470074.540051.830063.180064.080044.950054.520052.660039.540046.100045.590034.750040.1700Thigh_max=max(T(:,1))7Thigh_max=80.1400Tlow_min=min(T(:,2))Tlow_min=33.8400Tave_ave=mean(T(:,3))Tave_ave=53.5100whosNameSizeBytesClassAttributesD12x4384doubleT12x3288doubleTave_ave1x18doubleThigh_max1x18doubleTlow_min1x18double4、低级输入/输出函数load,save可以看成高级函数,用户只要输入简单的语句,系统就能接受或传送数据。但它不能控制操作的细节。例如,当文件存放在纯文本文件中,有列标题时,不能使用load.例:8typeH2Odensity.datkx(k)11.0022.0033.0044.0055.00loadH2Odensity.dat???Errorusing==loadUnknowntextonlinenumber1ofASCIIfileD:\MyDocuments\MATLAB\H2Odensity.datk.此时,要使用低级I/O函数。一般格式:fid=fopen(filename,permission)fid是文件标识符,当打开文件成功时,返回正数,否则返回-1。Permission是字符串,表示对文件许可的操作。‘rt’:打开文件进行读操作。‘wt’:打开文件进行写操作,文件不存在时,先创建在写;已经存在时,将原来内容覆盖。‘a’:打开文件进行追加操作,文件不存在时,先创建在追加,已经存在时,直接追加在文件末尾。line=fgetl(fid)%打开文件的一行9x=fscanf(fid,format)%从文件中读取格式化数据format是字符串,表示给变量x赋值的转换格式%s:格式化为字符串%d:格式化为整数%f:格式化为浮点数%e:格式化为科学记数法的浮点数%g:格式化为%e或%f简化格式\n:换行\t:插入制表符例:fid=fopen('pdxThead.dat','rt');%打开文件进行读headings=fgetl(fid)%读取文件的第一行,如再调用一次,读第二行headings=monthhighlowaved=fscanf(fid,'%f');fclose(fid)%关闭文件ans=0d=reshape(d,[4,12])'d=101.000045.360033.840039.60002.000050.870035.980043.43003.000056.050038.550047.30004.000060.490041.360050.92005.000067.170046.920057.05006.000073.820052.800063.31007.000079.720056.430068.07008.000080.140056.790068.47009.000074.540051.830063.180010.000064.080044.950054.520011.000052.660039.540046.100012.000045.590034.750040.1700m=d(:,1);T=d(:,2:4)T=45.360033.840039.600050.870035.980043.430056.050038.550047.30001160.490041.360050.920067.170046.920057.050073.820052.800063.310079.720056.430068.070080.140056.790068.470074.540051.830063.180064.080044.950054.520052.660039.540046.100045.590034.750040.1700例:x=[12345];fout=fopen('myfile.dat','wt');%创建文件myfile.dat,下面是向文件中写入数据fprintf(fout,'kx(k)\n');fork=1:length(x)fprintf(fout,'%4d%5.2f\n',k,x(k));endfclose(fout)ans=0typemyfile.datkx(k)1211.0022.0033.0044.0055.00练习:下图是从pdxTemp.dat中提取的数据,画出每个月的最高气温、最低气温、平均气温。例:将Excel格式文件保存到Matlab中选择当前路径,双击当前路径中的Excel数据文件,弹出ImportWizard,执行finish,工作窗口中会出现变量名Sheet1,可修改变量名,此时可以使用这个变量。例如在“我的文挡”中有文件book1.xls.将当前路径选为“我的文挡”,双击文件book1.xls。在窗口中出现变量名Sheet1,修改其为变量a,在窗口中输入a,则有:a=124333555135、打开(或保存成)Excel文件a=xlsread('filename')xlswrite('filename.xls',a)6、Matlab与Word混合使用(1)notebook的安装notebook则得以下代码WelcometotheutilityforsettinguptheMATLABNotebookforinterfacingMATLABtoMicrosoftWord14ChooseyourversionofMicrosoftWord:[1]MicrosoftWord97[2]MicrosoftWord2000[3]MicrosoftWord2002(XP)[4]MicrosoftWord2003(XP)[5]Exit,makingnochangesMicrosoftWordVersion:4输入4回车,则命令窗口出现:notebookNotebooksetupiscomplete.Warning:MATLABisnowanautomation

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

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

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

×
保存成功