私はこの値を持つ1x1セルを持っているとしましょう: 'atcatcaaca'。 私の目標は:Matlabでセル1x1を分割する方法は?
- 「a」の横に1から5の「a」を追加します。
- 任意の 'c'の横に1〜10 'c'を追加します。
- 任意の「g」の横に「g」の乱数を追加します。
「t」の横に任意の「t」の乱数を追加します。 | :aaaattttcccaattttccaaaaaaaaaacccccccccaa「を
私の考えは値セルを取り、マトリックスに何とかそれを分割することです。例えば
は私が持っている「atcatcaaca'.My目標はそれが好きなようにすることです」 t | | t | c | a | a | c | a。 それは可能でしょうか?もしそうなら、どうですか?
コードは次のとおりです。
filename = fullfile(matlabroot,'virus_nucleotitde2.dat');
Z = readtable(filename);
S = table2cell(Z);
num_rows = size (Z,1);
num_cols = size (Z,2);
for i=1:1:num_rows
for j=1:1:num_cols
B = S(i,j);
a=0;
c=0;
g=0;
t=0;
B{1} = num2cell(B{1});
n = randi(6); % Random number between 1 and 6
B{1} = strrep(B{1} , 'a' , repmat('a' , 1, n));
n = randi(11); % Random number between 1 and 11
B{1} = strrep(B{1} , 'c' , repmat('c' , 1, n));
n = randi(11);
B{1} = strrep(B{1} , 'g' , repmat('g' , 1, n));
n = randi(11);
B{1} = strrep(B{1} , 't' , repmat('t' , 1, n));
end
end
私はこれを行っています(muコードを見てください)。strrepを使用しているエラー セル要素は文字配列でなければなりません。 bio637(行19)のエラー B {1} = strrep(B {1}、 'a'、repmat( 'a'、1、n)); – Diamadis
変更された投稿では、すべてのB {1}をS {i、j}に置き換えて、Bをすべて削除することができます。 – Zep
私はそれが働いていると思っていますが、黄色い文字で表示されます:bio637(行18) 警告:文字配列または文字列のセル配列 – Diamadis