2行4列元胞结构如下:
a=
'g1' 'g2' [] []
'g3' 'g4' 'g5' []
如何将a合并为1行5列的结构:{'g1' 'g2' 'g3' 'g4' 'g5'}?
a = {'g1' 'g2' [] []
'g3' 'g4' 'g5' []};
b = a(~cellfun(@isempty,a))'
b =
'g1' 'g3' 'g2' 'g4' 'g5'
'g3' 'g4' 'g5' []};
b = a(~cellfun(@isempty,a))'
b =
'g1' 'g3' 'g2' 'g4' 'g5'
温馨提示:答案为网友推荐,仅供参考
第1个回答 2011-12-14
a={'g1' 'g2' [] []
'g3' 'g4' 'g5' []};
a=reshape(a',1,8);
>> a(3:4)=[]
a =
'g1' 'g2' 'g3' 'g4' 'g5' []
>> a(6)=[]
a =
'g1' 'g2' 'g3' 'g4' 'g5'追问
'g3' 'g4' 'g5' []};
a=reshape(a',1,8);
>> a(3:4)=[]
a =
'g1' 'g2' 'g3' 'g4' 'g5' []
>> a(6)=[]
a =
'g1' 'g2' 'g3' 'g4' 'g5'追问
有没有更简单的方法呢?如果a=cell(100,100)规模的呢?
追答a={'g1' 'g2' [] []
'g3' 'g4' 'g5' []};
[m,n]=size(a);
a=reshape(a',1,m*n);
b=cell(1,m*n);
j=1;
for i=1:m*n
if ~isempty(a{i})
b{j}=a{i};
j=j+1;
end
end
b(j:end)=[];
>>b =
'g1' 'g2' 'g3' 'g4' 'g5'