【发布时间】:2023-12-26 18:56:01
【问题描述】:
这是我需要从输入中选择一个元素的代码的一部分。最终结果以一种奇怪的方式排序,它将创建 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'
现在我只想选择绑定站点(CAGCTG、CAGGTG、CAACTG 等)
我有另一个 for 循环可以做到这一点。代码:
struSize = 长度(struKm); tempcell = 单元格(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'
一些具有两个结合位点的细胞的问题使得 紧邻 。
我需要它们都排成一排。仍在为此苦苦挣扎。你能帮忙吗?
谢谢你, 一个
【问题讨论】:
标签: matlab sorting split cell-array