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

其它类软件,非上述版软件
回复
nxhylyh
帖子: 3
注册时间: 2010-02-12 10:33

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

#1

帖子 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项才对的,各位帮帮忙
附件
fas.txt
(63 Bytes) 已下载 131 次
头像
Curio
帖子: 279
注册时间: 2009-02-23 14:37
来自: 北京

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

#2

帖子 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'

我用的你的附件,结果应该是对的
大家都是云玩家╮(╯-╰)╭
头像
Curio
帖子: 279
注册时间: 2009-02-23 14:37
来自: 北京

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

#3

帖子 Curio »

对啦

fname1必然是一项~~~~~

这个你懂得。。。
大家都是云玩家╮(╯-╰)╭
nxhylyh
帖子: 3
注册时间: 2010-02-12 10:33

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

#4

帖子 nxhylyh »

楼上大哥,实在是太感谢你了,如果可以加我QQ 好吗?小弟万分感激
小弟QQ 1036300382
回复