这是我的代码的一部分,我需要从输入中选择一个元素。最后的结果是以一种奇怪的方式排序,它将创建1X2单元而不是将它们放在一起!
struKm(i).seqNam = cellstr(regexp(data(i).Header, '\s\||\:|\|','split')); % determen the seqance name heads
struKm(i).seqNam(cellfun(@(x) isempty(x),struKm(i).seqNam))=[];
此代码位于FOR LOOP中。
此代码的结果是:
ans =
'AF051909' '392-397' 'CAGCTG' '413-418' 'CAGGTG'
某些seqNams只包含一个绑定站点(CAGCTG)。例如:
ans =
'M13483' '445-450' 'CAACTG'
现在我只想选择Binding网站(CAGCTG,CAGGTG,CAACTG,...等)
我有另一个for循环可以做到这一点。代码:
struSize = length(struKm); tempcell = cell(1,1);
表示m = 1:struSize
if (length(struKm(m).seqNam) == 3)
resultsk.BS{m} = struKm(m).seqNam(3);
disp(m);
end
if (length(struKm(m).seqNam) == 5)
resultsk.BS{m} = cellstr(struKm(m).seqNam([3,5]));
%tempcell = struKm(m).seqNam([3,5]); resultsk.BS{m} = cellstr(tempcell);
disp(m);
end
端
以及此代码的结果:
resultsk.BS {:}
ans =
'CAGCTG' 'CAGGTG'
ans =
'CAACTG'
ans =
'CAACTG'
具有两个结合位点的一些细胞的问题,其产生< 1x2细胞>紧邻< 1x1 cell>。
我需要一排排。仍在努力解决这个问题。你能帮忙吗?
谢谢你, 甲
答案 0 :(得分:1)
这是一个很长的解释,但如果我理解正确,只有结局非常重要
resultsk.BS{1} = {'CAGCTG' 'CAGGTG'};
resultsk.BS{2} = {'CAACTG'};
resultsk.BS{3} = {'CAACTG'};
resultsk.BS{:} % this gives 'your' answer
现在您可以连接单元格输出
A = [resultsk.BS{:}]
A =
'CAGCTG' 'CAGGTG' 'CAACTG' 'CAACTG'
whos A
A 1x4 496 cell
所以现在这是一个1x4的细胞。这是你需要的吗?