Matlab中读取txt文件的几种方法

如题所述

17.891 -1.1286 33.0451 11 111 11112 22 222 22223 33 333 33334 44 444 44445 55 555 5555”方法有多种,现举两个比较简单实用的。方法一: file/import data....../next/finish>> whosName Size Bytes Classdata 5x4 160 double arraytextdata 4x1 300 cell arrayGrand total is 54 elements using 460 bytes>> datadata = 1 11 111 11112 22 222 22223 33 333 33334 44 444 4444[a1,a2,a3,a4]=textread('test1.txt','%s%s%s%s','headerlines',4)说明:%s可以是其他形式,跟读入的数据类型有关,比如这里也可以用%n,%f等。这里%s的个数和[a1,a2,a3,a4]对应。>> [a1,a2,a3,a4]=textread('test1.txt','%s%s%s%s','headerlines',4)a1 = '1''2''3''4''5'a2 = '11''22''33''44''55'a3 = '111''222''333''444''555'a4 = '1111''2222''3333''4444''5555'因以字符串的形式读入,所以有''。————————————————————————————————三、中文 数据英文混乱如test.txt你好vib.hit.edu.cn4 44 444 44445 55 555 5555说明:这种内容格式的文件用上面的方法是不行的。以下是由chinamaker编写的一种方法:fidin=fopen('test.txt'); % 打开test2.txt文件 fidout=fopen('mkmatlab.txt','w'); % 创建MKMATLAB.txt文件while ~feof(fidin) % 判断是否为文件末尾 tline=fgetl(fidin); % 从文件读行 if double(tline(1))>=48&&double(tline(1))<=57 % 判断首字符是否是数值fprintf(fidout,'%s\n\n',tline); % 如果是数字行,把此行数据写入文件MKMATLAB.txtcontinue % 如果是非数字继续下一次循环endendfclose(fidout);MK=importdata('MKMATLAB.txt'); % 将生成的MKMATLAB.txt文件导入工作空间,变量名为MK,实际上它不显示出来>> MKMK = 1 11 111 11112 22 222 22223 33 333 3333
温馨提示:答案为网友推荐,仅供参考
相似回答