- 阅读权限
- 255
- 威望
- 0 级
- 论坛币
- 680 个
- 通用积分
- 0
- 学术水平
- 0 点
- 热心指数
- 0 点
- 信用等级
- 0 点
- 经验
- 2169 点
- 帖子
- 276
- 精华
- 0
- 在线时间
- 650 小时
- 注册时间
- 2009-10-11
- 最后登录
- 2025-5-9
讲师
还不是VIP/贵宾
- 威望
- 0 级
- 论坛币
 - 680 个
- 通用积分
- 0
- 学术水平
- 0 点
- 热心指数
- 0 点
- 信用等级
- 0 点
- 经验
- 2169 点
- 帖子
- 276
- 精华
- 0
- 在线时间
- 650 小时
- 注册时间
- 2009-10-11
- 最后登录
- 2025-5-9
 | 开心 2023-1-20 10:21:34 |
|---|
签到天数: 42 天 连续签到: 6 天 [LV.5]常住居民I
|
10论坛币
|
我想用MATLAB读取txt文件中的数据,txt文件如下面两张图所示,是字符和数据混合的形式:
我用的读取数据函数如下:
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文件中的数据?谢谢。
|
|