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

您所在的位置:网站首页 提取txt文件数据 Matlab中读取txt文件的几种方法

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

2023-09-23 02:33| 来源: 网络整理| 查看: 265

matlab读取文本文件的几种函数: 1、load——适合读取纯数据文本; 2、importdata——只读取数据,自动省略数据格式前后的字符,超大文件不适合; 3、textread、textscan——适合读取行列规整的文本,会存到元胞中,可通过headerlines省略读取字段名(字符行); 4、csvread、dlmread——适合读取csv、xsl等文件格式文本; 5、fprintf、fscanf——适合读取复杂的文本(中英文、数字串混杂出现);

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

对于这种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.cn1 11 111 11112 22 222 22223 33 333 33334 44 444 44445 55 555 5555”这样的文件怎么读入数据呢?方法有多种,现举两个比较简单实用的。

方法一:file/import data....../next/finish >> whosName           Size                   Bytes Class

data           5x4                      160 double arraytextdata       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')    #    %*s代表省略后两列数据

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 3333vib.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))> MK

MK =

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



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3