1、数学建模竞赛常用方法之数学建模竞赛常用方法之数据处理方法数据处理方法南京师范大学泰州学院数科院 王明刚主要内容主要内容一、一、数据的导入与导出数据的导入与导出三、三、数据插值数据插值二、二、数据预处理数据预处理四、四、数据拟合数据拟合2022/11/1从从TXT文件中读取数据文件中读取数据MATLAB中读取文本文件的常用函数中读取文本文件的常用函数2022/11/1一、一、利用数据导入向导导入利用数据导入向导导入TXT文件文件2022/11/1数据文件略去数据文件略去【例例2.1-1】利用数据导入向导读取文件利用数据导入向导读取文件examp02_01.txt至至examp02_11.txt中
2、的数据中的数据2022/11/1二、调用高级函数读取数据二、调用高级函数读取数据1.调用调用importdata函数读取数据函数读取数据调用格式:调用格式:importdata(filename)A=importdata(filename)A=importdata(filename,delimiter)A=importdata(filename,delimiter,headerline)A D=importdata()A D H=importdata()=importdata(-pastespecial,)2022/11/1 importdata(examp02_04.txt)x=import
3、data(examp02_07.txt)x=importdata(examp02_03.txt,;)x=importdata(examp02_08.txt,2)x,s,h=importdata(examp02_07.txt)FileContent=importdata(examp02_10.txt)【例例2.1-2】调用调用importdata函数读取文件函数读取文件examp02_01.txt至至examp02_11.txt中的数据中的数据2022/11/12.调用调用load函数读取数据函数读取数据调用格式:调用格式:S=load(filename)S=load(filename,vari
4、ables)S=load(filename,-mat,variables)S=load(filename,-ascii)load(.)load.2022/11/1 load examp02_01.txt load -ascii examp02_01.txt x1=load(examp02_02.txt)x1=load(examp02_02.txt,-ascii);load examp02_03.txt load examp02_04.txt【例例2.1-3】调用调用load函数读取文件函数读取文件examp02_01.txt至至examp02_12.txt中的数据中的数据2022/11/13.
5、调用调用dlmread函数读取数据函数读取数据调用格式:调用格式:M=dlmread(filename)M=dlmread(filename,delimiter)M=dlmread(filename,delimiter,R,C)M=dlmread(filename,delimiter,range)2022/11/1 x=dlmread(examp02_03.txt)x=dlmread(examp02_03.txt,2,3)x=dlmread(examp02_03.txt,1,2,2,5)x=dlmread(examp02_05.txt)x=dlmread(examp02_06.txt)x=dl
6、mread(examp02_09.txt)【例例2.1-4】调用调用dlmread函数读取文件函数读取文件examp02_01.txt至至examp02_11.txt中的数据中的数据2022/11/14.调用调用textread函数读取数据函数读取数据调用格式:调用格式:A,B,C,=textread(filename,format)A,B,C,=textread(filename,format,N)=textread(,param,value,)textread函数支持的函数支持的format字符串字符串textread函数支持的参数名与参数值列表函数支持的参数名与参数值列表2022/11/
7、1 x1=textread(examp02_01.txt);x2=textread(examp02_02.txt);x3=textread(examp02_03.txt,delimiter,);c1,c2,c3,c4,c5=textread(examp02_04.txt,%f%f%f%f%f,delimiter,;*);x5=textread(examp02_05.txt,emptyvalue,-1)x8=textread(examp02_08.txt,headerlines,7)x9=textread(examp02_09.txt,delimiter,whitespace,+i)c1,c2,
8、c3,c4,c5,c6,c7,c8=textread(examp02_09.txt,.%f%f%f%f%f%f%f%f,delimiter,whitespace,+i);【例例2.1-5】调用调用textread函数读取文件函数读取文件examp02_01.txt至至examp02_11.txt中的数据中的数据2022/11/1三、调用低级函数读取数据三、调用低级函数读取数据1.调用调用fopen函数打开文件函数打开文件调用格式:调用格式:fid,message=fopen(filename,permission)filename,permission=fopen(fid)2022/11/12
9、.调用调用fclose函数关闭文件函数关闭文件调用格式:调用格式:status=fclose(fid)status=fclose(all)2022/11/13.调用调用fseek、ftell、frewind和和feof函数控制读写位置函数控制读写位置调用格式:调用格式:status=fseek(fid,offset,origin)%设定文件指针位置设定文件指针位置position=ftell(fid)%获取文件指针位置获取文件指针位置frewind(fid)%移动当前文件指针到文件的开头移动当前文件指针到文件的开头eofstat=feof(fid)%判断是否到达文件末尾判断是否到达文件末尾20
10、22/11/14.调用调用fgets、fgetl函数读取文件的下一行函数读取文件的下一行调用格式:调用格式:tline=fgets(fid)tline=fgets(fid,nchar)tline=fgetl(fid)2022/11/15.调用调用textscan函数读取数据函数读取数据调用格式:调用格式:C=textscan(fid,format)C=textscan(fid,format,N)C=textscan(fid,format,param,value,)C=textscan(fid,format,N,param,value,)C=textscan(str,)C,position=te
11、xtscan()2022/11/1 fid=fopen(examp02_08.txt,r);%以只读方式打开文件以只读方式打开文件examp02_08.txt fgets(fid);%读取文件的第读取文件的第1行行 fgets(fid);%读取文件的第读取文件的第2行行 A=textscan(fid,%f%f%f%f%f%f,CollectOutput,1)A=3x6 double fgets(fid);%读取文件的第读取文件的第6行行 fgets(fid);%读取文件的第读取文件的第7行行 B=textscan(fid,%f%f%f,CollectOutput,1)B=2x3 double
12、fclose(fid);%关闭文件关闭文件【例例2.1-6】调用调用textscan函数读取文件函数读取文件examp02_01.txt至至examp02_13.txt中的数据中的数据2022/11/1 把数据写入把数据写入TXT文件文件MATLAB中写文本文件的常用函数中写文本文件的常用函数2022/11/1一、调用一、调用dlmwrite函数写入数据函数写入数据调用格式:调用格式:dlmwrite(filename,M)dlmwrite(filename,M,D)dlmwrite(filename,M,D,R,C)dlmwrite(filename,M,attrib1,value1,att
13、rib2,value2,)dlmwrite(filename,M,-append)dlmwrite(filename,M,-append,attribute-value list)dlmwrite函数支持的参数名与参数值列表函数支持的参数名与参数值列表2022/11/1%定义复数矩阵定义复数矩阵 x=1.455390+1.360686i 8.692922+5.797046i 5.498602+1.449548i 8.530311+6.220551i3.509524+5.132495i 4.018080+0.759667i 2.399162+1.233189i 1.839078+2.399525
14、i4.172671+0.496544i 9.027161+9.447872i 4.908641+4.892526i 3.377194+9.000538i;%将复数矩阵将复数矩阵x写入文件写入文件examp02_09.txt,用逗号,用逗号(,)作分隔符,用作分隔符,用rn作换行作换行符符 dlmwrite(examp02_09.txt,x,delimiter,newline,pc)【例例2.2-1】用逗号作为分隔符,调用用逗号作为分隔符,调用dlmwrite函数将如下复数矩函数将如下复数矩阵写入文件阵写入文件examp02_09.txt2022/11/1二、调用二、调用fprintf函数写入数
15、据函数写入数据调用格式:调用格式:count=fprintf(fid,format,A,)【例例】%在屏幕上显示一句话在屏幕上显示一句话 y=fprintf(1,祝福我们伟大的新中国祝福我们伟大的新中国%d周岁生日快乐!周岁生日快乐!,60)祝福我们伟大的新中国祝福我们伟大的新中国60周岁生日快乐!周岁生日快乐!y=382022/11/1%产生一个产生一个8行行5列的随机矩阵,其元素服从列的随机矩阵,其元素服从0,10上的均匀分布上的均匀分布 x=10*rand(8,5);%以写入方式打开文件,返回文件标识符以写入方式打开文件,返回文件标识符 fid=fopen(examp02_01.txt,
16、wt);%把矩阵把矩阵x以指定格式写入文件以指定格式写入文件examp02_01.txt fprintf(fid,%-f%-f%-f%-f%-f%-f%-f%-fn,x);fclose(fid);%关闭文件关闭文件【例例2.2-2】用用fprintf函数将数据写入文件函数将数据写入文件examp02_01.txt至至examp02_11.txt的代码的代码调用调用fprintf函数写入数据或在屏幕上显示数据时,函数写入数据或在屏幕上显示数据时,format参数指定的格式循参数指定的格式循环作用在矩阵的列上,原始矩阵的列在文件中或屏幕上就变成了行。环作用在矩阵的列上,原始矩阵的列在文件中或屏幕上就变成了行。2022/11/1从从Excel文件中读取数据文件中读取数据2022/11/1一、利用数据导入向导导入一、利用数据导入向导导入Excel文件文件2022/11/1二、调用二、调用xlsread函数读取数据函数读取数据调用格式:调用格式:num=xlsread(filename)num=xlsread(filename,-1)num=xlsread(filename,sheet)num=
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1