MATLAB 读取数据 怎么跳过空格 和 空行
比如说我有文件test1.txt内容是********aaa123bbb456eeeccc23313e-4-5e13433313e-43e13-4-23313e-4-1e...
比如说我有文件test1.txt
内容是
********
aaa 123
bbb 456 eee
ccc
233 13e-4 -5e13 4
333 13e-4 3e13 -4
-233 13e-4 -1e13 4
之类的
现在希望读取开头为数字那一行的所有数据:即从233开始,形成一个矩阵。
如
[233,13e-4,-5e13,4;
333,13e-4,3e13,-4;
-233,13e-4,-1e13,4]
因为文件有很多,无法判断从我想要的数据是从第几行开始,所以只有靠“开头为数字那一行”作为判断标准。但是我要的那几行开头又是空格,所以想请教怎么跳过这些空格?程序模板大概是下面这样(当然如果有其他可用程序也行).谢谢高手
fidin=fopen('test2.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 展开
内容是
********
aaa 123
bbb 456 eee
ccc
233 13e-4 -5e13 4
333 13e-4 3e13 -4
-233 13e-4 -1e13 4
之类的
现在希望读取开头为数字那一行的所有数据:即从233开始,形成一个矩阵。
如
[233,13e-4,-5e13,4;
333,13e-4,3e13,-4;
-233,13e-4,-1e13,4]
因为文件有很多,无法判断从我想要的数据是从第几行开始,所以只有靠“开头为数字那一行”作为判断标准。但是我要的那几行开头又是空格,所以想请教怎么跳过这些空格?程序模板大概是下面这样(当然如果有其他可用程序也行).谢谢高手
fidin=fopen('test2.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 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询