读文本文件及提取数值

XXX_rd=textread('XXX.txt','%s','delimiter','/n');

是以文本的方式读取文件XXX.txt,得到的XXX_rd是一个n*1的元胞数组,每个元胞的内容为一个字符串,对应一行文本。

delimiter是分隔符,可以指定多个,如同时指定'/n'和','及空格为分隔符:

XXX_rd=textread('XXX.txt','%s','delimiter','/n, ');

注:为了清晰,通常接收变量的名称取作文件名加_rd,即如果文件名是XXX.txt,则接收变量名为XXX_rd,然后XXX_rd经一系列处理得到最终想要的变量XXX。

--

以上述方式读入文件的好处是信息毫无遗漏--先将文本毫发无损地读进来,然后再进行各种处理,并且处理也要在副本上进行,保证原稿的完整。

最常用的处理是提取数值:对于一行文本(字符串),顺序提取其中的数值存于一个向量中,可由下面自定义函数实现:

function valus=getvalu(str)
valus=[];
valustr=[];
for i=1:length(str)
    if (str(i)>='0'&&str(i)<='9')||str(i)=='.'
        valustr=[valustr,str(i)];
    else
        if ~(isempty(valustr)||(length(valustr)==1&&valustr(1)=='.'))
            valus=[valus,str2num(valustr)];
            valustr=[];
        end
    end
end
if ~(isempty(valustr)||(length(valustr)==1&&valustr(1)=='.'))
    valus=[valus,str2num(valustr)];
end
end

如果想将各行提取的数值组成一个矩阵,只需写一个循环即可。

--

另外常用的处理就是用所读入的文本内容去填充一个结构体(其中也要用到提取数值),也是通过循环来做,并不难写。

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值