分页: 1 / 1

matlab里如何删除元胞数组里的空白项

发表于 : 2010-02-12 10:40
nxhylyh
>> D
D =
[1x136 char] [] [1x124 char] [1x59 char] [] []
1:如何将里面的空白项删除?也就是元胞数组里就剩3项
2:另外请看下下面程序错在何处
clc;clear;
file=fopen('fas.txt','r');
fname={};fname1={};
while feof(file)==0
str=fgetl(file);
fname1=regexp(str,'>\w+$','match') %将‘<’一起的字符串提取出来
if fname1~=''
fname=[fname; fname1];%记的这个公式可以删除空白项。
fname1={};
end
end
disp(fname);
fclose(file);
上面是个循环取字符串的程序,用到了正则表达式,但是运行不出来~
返回:
fname1 =

'>AB016625'

??? Function 'ne' is not defined for values of class 'cell'.

Error in ==> ne at 18
[varargout{1:nargout}] = builtin('ne', varargin{:});
fname1出来了只有一项。。应该有3项才对的,各位帮帮忙

Re: matlab里如何删除元胞数组里的空白项

发表于 : 2010-02-15 22:48
Curio
第一个可以这样:D(2)=[];
类似这样就可以

第二个:
我改了一下

clc;clear;
file=fopen('fas.txt','r');
fname={};
while feof(file)==0
str=fgetl(file);
fname1 = regexp(str,'>\w+$','match'); %将‘<’一起的字符串提取出来
if ~isempty(fname1)
fname = [fname; fname1];%记的这个公式可以删除空白项。

end
end
disp(fname);
fclose(file);

输出是:
'>AB016625'
'>AF008216'

我用的你的附件,结果应该是对的

Re: matlab里如何删除元胞数组里的空白项

发表于 : 2010-02-15 22:57
Curio
对啦

fname1必然是一项~~~~~

这个你懂得。。。

Re: matlab里如何删除元胞数组里的空白项

发表于 : 2010-02-16 17:17
nxhylyh
楼上大哥,实在是太感谢你了,如果可以加我QQ 好吗?小弟万分感激
小弟QQ 1036300382