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\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

  • 12
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Matlab读取csv文件方法有多种。以下是其的三种方法方法一:使用csvread函数 csvread函数可以读取csv文件的数值类型数据。 例如,假设我们有一个名为data.csv的文件,其包含以下数据: ``` 1,2,3 4,5,6 7,8,9 ``` 我们可以使用以下代码读取文件: ``` data = csvread('data.csv') ``` 输出: ``` data = 1 2 3 4 5 6 7 8 9 ``` 方法二:使用readtable函数 readtable函数可以读取csv文件的表格数据类型。 例如,假设我们有一个名为data.csv的文件,其包含以下数据: ``` Name, Age, City John, 25, New York Lisa, 35, Los Angeles Bob, 30, Chicago ``` 我们可以使用以下代码读取文件: ``` data = readtable('data.csv') ``` 输出: ``` data = 3×3 table Name Age City ________ _______ _______ 'John' 25 'New York' 'Lisa' 35 'Los Angeles' 'Bob' 30 'Chicago' ``` 方法三:使用textscan函数 textscan函数可以读取csv文件的任何类型的数据。 例如,假设我们有一个名为data.csv的文件,其包含以下数据: ``` Name, Age, City John, 25, New York Lisa, 35, Los Angeles Bob, 30, Chicago ``` 我们可以使用以下代码读取文件: ``` fileID = fopen('data.csv'); data = textscan(fileID, '%s %d %s', 'Delimiter', ',', 'HeaderLines', 1); fclose(fileID); ``` 输出: ``` data = 3×3 cell array {'John'} {[25]} {'New York' } {'Lisa'} {[35]} {'Los Angeles'} {'Bob' } {[30]} {'Chicago' } ``` 这些方法都可以用来读取csv文件,具体使用哪种方法取决于文件的数据类型和格式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值