楼主: iamssj
4532 0

[问答] matlab对txt文件的数据读取问题 [推广有奖]

  • 0关注
  • 3粉丝

讲师

74%

还不是VIP/贵宾

-

威望
0
论坛币
680 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
2169 点
帖子
276
精华
0
在线时间
650 小时
注册时间
2009-10-11
最后登录
2025-5-9

楼主
iamssj 在职认证  发表于 2013-2-28 17:12:26 |AI写论文
10论坛币
我想用MATLAB读取txt文件中的数据,txt文件如下面两张图所示,是字符和数据混合的形式: VI@}D5]LC`OTKM8BF]FYO2Y.jpg M5_$IPQ@]T3TB7M[Q(SAO.jpg
我用的读取数据函数如下:
function MK

fidin=fopen('test.txt');                              
% 打开test.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,实际上它不显示出来

但是在运行该函数时,MATLAB给出下面的错误提示:

tangram_guid_1362031383038? Attempted to access tline(1); index out of bounds because numel(tline)=0.

Error in ==> MK at 6
    if double(tline(1))>=48&&double(tline(1))<=57 % 判断首字符是否是数值

因此想问下大家,原程序应该做怎样的修改?或者说,如何重新写一个函数,使得其可以成功读取如上述两图所示的txt文件中的数据?谢谢。

关键词:MATLAB matla atlab 数据读取 Mat matlab

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-12 04:57