RELATEED CONSULTING
相关咨询
选择下列产品马上在线沟通
服务时间:9:30-18:00
你可能遇到了下面的问题
关闭右侧工具栏
matlab中常见txt文件读入的实用方法
  • 作者:xiaoxiao
  • 发表时间:2020-12-23 11:00
  • 来源:未知

感谢动力学与控制技术论坛的那些无私的奉献者!!本帖特别感谢chinamaker,wolfer555,午夜流星,小人物小小等。

%小人物小小整理% www.dytrol.com% 2004.7.9

文件内容形式一(假定文件名为test1.txt):你好欢迎来到动力学与控制技术论坛www.dytrol.com1 11 111 11112 22 222 22223 33 333 33334 44 444 44445 55 555 5555这样的文件怎么读入数据呢?方法有多种,现举两个比较简单实用的。方法一:file/import data....../next/finish>> whos  Name           Size                   Bytes  Class

  data           5x4                      160  double array  textdata       4x1                      300  cell array

Grand total is 54 elements using 460 bytes

>> data

data =

           1          11         111        1111           2          22         222        2222           3          33         333        3333           4          44         444        4444           5          55         555        5555

>> textdata

textdata =

    '你好'    '欢迎来到'    '动力学与控制技术论坛'    'www.dytrol.com'方法二:[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'因以字符串的形式读入,所以有''。

文件内容形式二(假定文件名为test2.txt):

你好1 11 111 1111欢迎来到2 22 222 2222动力学与仿真控制论坛3 33 333 3333www.dytrol.com4 44 444 44445 55 555 5555

说明:这种内容格式的文件用上面的方法是不行的。

以下是由chinamaker编写的一种方法:fidin=fopen('test2.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.txt       continue                                         % 如果是非数字继续下一次循环    endendfclose(fidout);MK=importdata('MKMATLAB.txt');      % 将生成的MKMATLAB.txt文件导入工作空间,变量名为MK,实际上它不显示出来 >> MK