zoukankan      html  css  js  c++  java
  • Matlab读取txt的几种方式

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

    对于这种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 ',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

  • 相关阅读:
    MVC之Control和View之间传递数据
    与 BUG 跟踪系统/问题跟踪集成
    与 BUG 跟踪系统/问题跟踪集成
    版本库浏览器
    c#创建快捷方式代码
    项目中用到的数字证书的创建,签名实现
    vs2005 "automation服务器不能创建对象"解决方法.
    项目中用到的数字证书的创建,签名实现
    创建一个输入标识符 也就是一个输入的光标
    利用设备描述符画图
  • 原文地址:https://www.cnblogs.com/Erdos001/p/4804600.html
Copyright © 2011-2022 走看看