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

  • 相关阅读:
    解决 Mac launchpad 启动台 Gitter 图标无法删除的问题
    React 与 React-Native 使用同一个 meteor 后台
    解决 React-Native mac 运行报错 error Failed to build iOS project. We ran "xcodebuild" command but it exited with error code 65. To debug build logs further, consider building your app with Xcode.app, by ope
    一行命令更新所有 npm 依赖包
    swift学习笔记
    IOS语言总结
    focusSNS学习笔记
    别小看锤子,老罗真的很认真
    windowsphone开发页面跳转到另一个dll中的页面
    【令人振奋】【转】微软潘正磊谈DevOps、Visual Studio 2013新功能、.NET未来
  • 原文地址:https://www.cnblogs.com/Erdos001/p/4804600.html
Copyright © 2011-2022 走看看