phuckoptik的个人博客分享 http://blog.sciencenet.cn/u/phuckoptik

博文

matlab中将一行char按空格依次断开

已有 5382 次阅读 2014-12-20 22:40 |个人分类:matlab小程序|系统分类:科研笔记|关键词:学者

matlab读入存有大量数据的text文件时候,在文件头可能有些说明,每行可能有些关键字是想提取的。这时候我们可以按行读入,再对每行的char进行处理。处理时候,需要将一行char断开,提取里面的关键数字信息等。下面函数可以实现对一行char的断开:

function A=cell2str(A0);

%将一行char断开,分号为几个单元

[m1,n1]=size(A0);

null_pointer=[];

for i=1:1:n1

   if A0(i)==char(' ');

       null_pointer=[null_pointer,i]

   else

   end

end

[m2,n2]=size(null_pointer);

A={};

if n2~=1

   for i1=1:1:n2

       if i1==1;

           temp=A0(1:(null_pointer(i1)-1));

           A=[A;temp];

       elseif i1==n2

           temp=A0(null_pointer(i1)+1:n1);

           A=[A;temp];

       else

           temp=A0((null_pointer(i1-1)+1):(null_pointer(i1)-1));

           A=[A;temp];

       end

   end

elseif n2==0;

   A=A0;

else

   temp1=A0(1:(null_pointer(1)-1));

   A=[A;temp1];

   temp2=A0((null_pointer(1)+1:n1));

   A=[A;temp2];

end

end











例如从zemax读出psf进行处理时候,文件头有波长信息,此行为line3所示,一行char2,断开后方便处理。

line3 =


'2.0000 to 2.4500 祄 at 0.0000, 0.0000 deg.'

运行A=cell2str(line3)

A =


   '2.0000'

   'to'

   '2.4500'

   '祄'

   'at'

   '0.0000,'

   'deg.'





https://m.sciencenet.cn/blog-1813294-852655.html

上一篇:MZDDE中操作数更正
下一篇:猥琐的及漂亮的像差

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-6-2 19:18

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部