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

  • 17
    点赞
  • 83
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
### 回答1: MATLAB是一种功能强大的数值分析软件,也可用于读取、处理和分析各种类型的数据。对于读取信号的txt文件,可以使用MATLAB的一些函数和命令来实现。 要读取信号txt文件,可以使用MATLAB的`importdata`函数。该函数可以读取txt文件,并将其存储为一个结构体变量。以下是一个示例代码来读取信号txt文件: ```matlab % 读取信号txt文件 data = importdata('signal.txt'); % 获取信号数据 signal = data.data; % 获取信号采样频率 fs = data.fs; % 获取信号时间序列 t = (0 : length(signal)-1) / fs; % 绘制信号图像 plot(t, signal); xlabel('Time (s)'); ylabel('Amplitude'); title('Signal'); ``` 上述代码首先使用`importdata`函数读取名为'signal.txt'的txt文件,并将数据存储在名为`data`的结构体变量。然后,通过`data.data`获取信号数据,`data.fs`获取信号采样频率。在此基础上,可以通过计算时间序列`t`来绘制信号图像,并通过`plot`函数进行绘制。 需要注意的是,如果信号txt文件的格式与示例代码所假设的不同,可能需要对代码进行适当的修改。具体来说,可能需要通过指定文件路径、调整数据导入选项、修改信号数据所在的字段名称等等来适应不同的文件格式。 综上所述,通过以上介绍的方法,可以使用MATLAB读取信号txt文件,并进行进一步的处理与分析。 ### 回答2: Matlab可以通过几个简单的步骤读取信号的txt文件。 首先,你需要将信号的txt文件与你的Matlab工作目录的.m文件放在同一个文件,或者设置该文件夹为Matlab的当前工作目录。 然后,你可以使用Matlab的`fopen`函数打开该信号文件: ``` fid = fopen('信号文件.txt', 'r'); ``` 这里的`fid`是文件标识符,用于引用打开文件。 接下来,你可以使用`fscanf`函数读取文件的信号数据。假设信号文件包含一列双精度浮点数,你可以使用以下代码: ``` signal = fscanf(fid, '%f'); ``` 这将将信号文件的数据读取到名为`signal`的向量。 最后,你需要使用`fclose`函数关闭文件,以释放资源: ``` fclose(fid); ``` 通过以上步骤,你就可以使用Matlab成功读取信号的txt文件了。你可以在之后的代码使用`signal`向量进行信号处理和分析等操作。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值