第6章 MATLAB与TXT文件的数据交换.ppt
读写读写TXT数据数据 谢中华谢中华,MATLAB从零到进阶从零到进阶.2022/11/192022/11/19天 津 科 技 大 学 数 学 系 谢中华E-mail:MATLAB从零到进阶从零到进阶MATLAB与TXT文件的数据交换读写读写TXT数据数据 谢中华谢中华,MATLAB从零到进阶从零到进阶.2022/11/192022/11/19主要内容主要内容 从从TXT文件中读取数据文件中读取数据 把数据写入把数据写入TXT文件文件读写读写TXT数据数据 谢中华谢中华,MATLAB从零到进阶从零到进阶.2022/11/192022/11/19第一节第一节 从从TXT文件中读取数据文件中读取数据读写读写TXT数据数据 谢中华谢中华,MATLAB从零到进阶从零到进阶.2022/11/19MATLAB中读取文本文件的常用函数中读取文本文件的常用函数读写读写TXT数据数据 谢中华谢中华,MATLAB从零到进阶从零到进阶.2022/11/192022/11/19一、一、利用数据导入向导导入利用数据导入向导导入TXT文件文件读写读写TXT数据数据 谢中华谢中华,MATLAB从零到进阶从零到进阶.2022/11/192022/11/19数据文件略去数据文件略去【例例6.1-1】利用数据导入向导读取文件利用数据导入向导读取文件examp6_2_1.txt至至examp6_2_11.txt中的数据中的数据读写读写TXT数据数据 谢中华谢中华,MATLAB从零到进阶从零到进阶.2022/11/192022/11/19二、调用高级函数读取数据二、调用高级函数读取数据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,)读写读写TXT数据数据 谢中华谢中华,MATLAB从零到进阶从零到进阶.2022/11/192022/11/19 importdata(examp6_2_4.txt)x=importdata(examp6_2_7.txt)x=importdata(examp6_2_3.txt,;)x=importdata(examp6_2_8.txt,2)x,s,h=importdata(examp6_2_7.txt)FileContent=importdata(examp6_2_10.txt)【例例6.1-2】调用调用importdata函数读取文件函数读取文件examp6_2_1.txt至至examp6_2_11.txt中的数据中的数据读写读写TXT数据数据 谢中华谢中华,MATLAB从零到进阶从零到进阶.2022/11/192022/11/192.调用调用load函数读取数据函数读取数据调用格式:调用格式:S=load(filename)S=load(filename,variables)S=load(filename,-mat,variables)S=load(filename,-ascii)load(.)load.读写读写TXT数据数据 谢中华谢中华,MATLAB从零到进阶从零到进阶.2022/11/192022/11/19 load examp6_2_1.txt load -ascii examp6_2_1.txt x1=load(examp6_2_2.txt)x1=load(examp6_2_2.txt,-ascii);load examp6_2_3.txt load examp6_2_4.txt【例例6.1-3】调用调用load函数读取文件函数读取文件examp6_2_1.txt至至examp6_2_12.txt中的数据中的数据读写读写TXT数据数据 谢中华谢中华,MATLAB从零到进阶从零到进阶.2022/11/192022/11/193.调用调用dlmread函数读取数据函数读取数据调用格式:调用格式:M=dlmread(filename)M=dlmread(filename,delimiter)M=dlmread(filename,delimiter,R,C)M=dlmread(filename,delimiter,range)读写读写TXT数据数据 谢中华谢中华,MATLAB从零到进阶从零到进阶.2022/11/192022/11/19 x=dlmread(examp6_2_3.txt)x=dlmread(examp6_2_3.txt,2,3)x=dlmread(examp6_2_3.txt,1,2,2,5)x=dlmread(examp6_2_5.txt)x=dlmread(examp6_2_6.txt)x=dlmread(examp6_2_9.txt)【例例6.1-4】调用调用dlmread函数读取文件函数读取文件examp6_2_1.txt至至examp6_2_11.txt中的数据中的数据读写读写TXT数据数据 谢中华谢中华,MATLAB从零到进阶从零到进阶.2022/11/192022/11/194.调用调用textread函数读取数据函数读取数据调用格式:调用格式:A,B,C,=textread(filename,format)A,B,C,=textread(filename,format,N)=textread(,param,value,)读写读写TXT数据数据 谢中华谢中华,MATLAB从零到进阶从零到进阶.2022/11/19textread函数支持的函数支持的format字符串字符串读写读写TXT数据数据 谢中华谢中华,MATLAB从零到进阶从零到进阶.2022/11/19textread函数支持的参数名与参数值列表函数支持的参数名与参数值列表读写读写TXT数据数据 谢中华谢中华,MATLAB从零到进阶从零到进阶.2022/11/192022/11/19 x1=textread(examp6_2_1.txt);x2=textread(examp6_2_2.txt);x3=textread(examp6_2_3.txt,delimiter,);c1,c2,c3,c4,c5=textread(examp6_2_4.txt,%f%f%f%f%f,delimiter,;*);x5=textread(examp6_2_5.txt,emptyvalue,-1)x8=textread(examp6_2_8.txt,headerlines,7)x9=textread(examp6_2_9.txt,delimiter,whitespace,+i)c1,c2,c3,c4,c5,c6,c7,c8=textread(examp6_2_9.txt,.%f%f%f%f%f%f%f%f,delimiter,whitespace,+i);【例例6.1-5】调用调用textread函数读取文件函数读取文件examp6_2_1.txt至至examp6_2_11.txt中的数据中的数据读写读写TXT数据数据 谢中华谢中华,MATLAB从零到进阶从零到进阶.2022/11/192022/11/19三、调用低级函数读取数据三、调用低级函数读取数据1.调用调用fopen函数打开文件函数打开文件调用格式:调用格式:fid,message=fopen(filename,permission)filename,permission=fopen(fid)读写读写TXT数据数据 谢中华谢中华,MATLAB从零到进阶从零到进阶.2022/11/192022/11/192.调用调用fclose函数关闭文件函数关闭文件调用格式:调用格式:status=fclose(fid)status=fclose(all)读写读写TXT数据数据 谢中华谢中华,MATLAB从零到进阶从零到进阶.2022/11/192022/11/193.调用调用fseek、ftell、frewind和和feof函数控制读写位置函数控制读写位置调用格式:调用格式:status=fseek(fid,offset,origin)position=ftell(fid)frewind(fid)eofstat=feof(fid)读写读写TXT数据数据 谢中华谢中华,MATLAB从零到进阶从零到进阶.2022/11/192022/11/194.调用调用fgets、fgetl函数读取文件的下一行函数读取文件的下一行调用格式:调用格式:tline=fgets(fid)tline=fgets(fid,nchar)tline=fgetl(fid)读写读写TXT数据数据 谢中华谢中华,MATLAB从零到进阶从零到进阶.2022/11/192022/11/195.调用调用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=textscan()读写读写TXT数据数据 谢中华谢中华,MATLAB从零到进阶从零到进阶.2022/11/192022/11/19 fid=fopen(examp6_2_8.txt,r);fgets(fid);fgets(fid);A=textscan(fid,%f%f%f%f%f%f,CollectOutput,1)A=3x6 double fgets(fid);fgets(fid);B=textscan(fid,%f%f%f,CollectOutput,1)B=2x3 double fclose(fid);【例例6.1-6】调用调用textscan函数读取文件函数读取文件examp6_2_1.txt至至examp6_2_13.txt中的数据中的数据读写读写TXT数据数据 谢中华谢中华,MATLAB从零到进阶从零到进阶.2022/11/192022/11/19第二节第二节 把数据写入把数据写入TXT文件文件读写读写TXT数据数据 谢中华谢中华,MATLAB从零到进阶从零到进阶.2022/11/19MATLAB中写文本文件的常用函数中写文本文件的常用函数读写读写TXT数据数据 谢中华谢中华,MATLAB从零到进阶从零到进阶.2022/11/192022/11/19一、调用一、调用dlmwrite函数写入数据函数写入数据调用格式:调用格式:dlmwrite(filename,M)dlmwrite(filename,M,D)dlmwrite(filename,M,D,R,C)dlmwrite(filename,M,attrib1,value1,attrib2,value2,)dlmwrite(filename,M,-append)dlmwrite(filename,M,-append,attribute-value list)读写读写TXT数据数据 谢中华谢中华,MATLAB从零到进阶从零到进阶.2022/11/19dlmwrite函数支持的参数名与参数值列表函数支持的参数名与参数值列表读写读写TXT数据数据 谢中华谢中华,MATLAB从零到进阶从零到进阶.2022/11/192022/11/19 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.399525i4.172671+0.496544i 9.027161+9.447872i 4.908641+4.892526i 3.377194+9.000538i;dlmwrite(examp6_2_9.txt,x,delimiter,newline,pc)【例例6.2-1】用逗号作为分隔符,调用用逗号作为分隔符,调用dlmwrite函数将如下复数矩函数将如下复数矩阵写入文件阵写入文件examp6_2_9.txt读写读写TXT数据数据 谢中华谢中华,MATLAB从零到进阶从零到进阶.2022/11/192022/11/19二、调用二、调用fprintf函数写入数据函数写入数据调用格式:调用格式:count=fprintf(fid,format,A,)【例例】%在屏幕上显示一句话在屏幕上显示一句话 y=fprintf(1,祝福我们伟大的新中国祝福我们伟大的新中国%d周岁生日快乐!周岁生日快乐!,60)祝福我们伟大的新中国祝福我们伟大的新中国60周岁生日快乐!周岁生日快乐!y=38读写读写TXT数据数据 谢中华谢中华,MATLAB从零到进阶从零到进阶.2022/11/192022/11/19 x=10*rand(8,5);fid=fopen(examp6_2_01.txt,wt);fprintf(fid,%-f%-f%-f%-f%-f%-f%-f%-fn,x);fclose(fid);%关闭文件关闭文件【例例6.2-2】用用fprintf函数将数据写入文件函数将数据写入文件examp6_2_01.txt至至examp6_2_11.txt的代码的代码调用调用fprintf函数写入数据或在屏幕上显示数据时,函数写入数据或在屏幕上显示数据时,format参数指定的格式循参数指定的格式循环作用在矩阵的列上,原始矩阵的列在文件中或屏幕上就变成了行。环作用在矩阵的列上,原始矩阵的列在文件中或屏幕上就变成了行。