Matlab读取txt的几种方法

    xiaoxiao2021-03-25  131

    一、纯数据文件(没有字母和中文,纯数字)

    对于这种txt文档,从matalb中读取就简单多了

    例如test.txt文件,内容为“17.901 -1.1111 33.045                                           17.891 -1.1286 33.045                                           17.884 -1.1345 33.045”

    可以在command window中输入load test.txt ,然后就会产生一个test的数据文件,内容跟test.txt中的数据一样;另一种方法是在file/import data....../next/finish 也可产生一个叫test的数据文件。

    二、中英文和数据如test1.txt

    “你好 欢迎来到 振动论坛 vib.hit.edu.cn 1 11 111 1111 2 22 222 2222 3 33 333 3333 4 44 444 4444 5 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 =

        '你好'     '欢迎来到'     '振动论坛'     'vib.hit.edu.cn'

    方法二: [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

    你好 1 11 111 1111 欢迎来到 2 22 222 2222 振动论坛 3 33 333 3333 vib.hit.edu.cn 4 44 444 4444 5 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.txt        continue                                         % 如果是非数字继续下一次循环     end end fclose(fidout); MK=importdata('MKMATLAB.txt');      % 将生成的MKMATLAB.txt文件导入工作空间,变量名为MK,实际上它不显示出来  >> MK

    MK =

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

    转载请注明原文地址: https://ju.6miu.com/read-18994.html

    最新回复(0)