加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

MATLAB从文件按行读取并存储到变量中

(2016-04-22 22:22:37)
分类: Matlab
还是习惯,先给出源代码:

图片格式代码:
文本格式代码:
fid=fopen('XJ.2008E.txt','r');
L=1;
while ~feof(fid)
        str=fgetl(fid);
    if ~isempty(str) 
        data{L,1}=str;
        L=L+1;
    end
end
fclose(fid);

这样就可以读取文本并将非空行并保存到 data 变量中。

 

假设输入文件 inputfile.txt 每行有4列数据(这里指的数据也包含字符),数据之间用空格隔开的。我们想把这4列数据分别提取出来,可参照下列程序:

 

图片格式代码:

http://s8/mw690/002XWA0fzy718cp8gon77&690

文本格式代码:

fid=fopen('inputfile.txt','r');
L=1;
while ~feof(fid)
        str=fgetl(fid);
    if ~isempty(str)
        a=regexp(str,'\s');
        data{L,1}=str(1:a(1)-1);
        data{L,2}=str(a(1)+1:a(2)-1);
        data{L,3}=str(a(2)+1:a(3)-1);
        data{L,4}=str(a(3)+1:end);
    end
end
fclose(fid);

 

通过这个程序,我们就可以按照空格位置来自动分列,而不用指定字符位置,如:

 data{L,1}=str(1:15);
该语句就固定格式了,当然所有文件的格式都固定的话也可以这样使用的。

 

data 数组中都是按照字符串格式来保存的,假设第四列是我们需要的数据格式(整型呀,浮点型呀),还需要通过 str2num(data{L,4}) 函数来转化为可使用的数据。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有