0

これは、入力から 1 つの要素を選択する必要があるコードの一部です。最終結果は奇妙な方法でソートされ、隣り合わせではなく 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) が 1 つだけ含まれています。例えば:

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'

<1x1 セル> の隣に <1x2 セル> を作る 2 つの結合部位を持つ一部のセルの問題。

私はそれらすべてを一列に並べる必要があります。まだこれに苦労しています。助けていただけますか?

ありがとう、A

4

1 に答える 1

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セルになります。これはあなたが必要としたものですか?

于 2012-10-03T17:04:23.420 に答える