行列 (A) の異なる行でパターン ([1 1] としましょう) を見つける変数を作成したいと考えています。もちろん、各行でこの文字列が同じ数だけ出現するわけではありません。
A = [ 0 0 0 1 1
1 1 1 0 0
0 1 0 1 1
1 1 1 0 0
0 1 0 0 1
1 0 1 1 1
0 1 0 1 0
1 1 1 0 1];
私はそれをできた:
for i = 1:n
var(i,:) = strfind(A(i,:),[1 1]);
end
しかし、その場合、方程式の両辺は等しくなりません。
エラー: ???添字付きの代入次元が一致しません。
私は事前に割り当てようとします。マトリックス A の各行でこの文字列が出現する最大数 (50 としましょう) と思われるマトリックスを作成します。
for i = 1:n
var(i, :) = NaN(1,50)
end
その後に前のコードが続きますが、これもダメです。
私も試しました:
for i = 1:n
var(i,1:numel(strfind(A(i,:),[1 1])) = strfind(A(i,:),[1 1])
end
エラー: 等号の左側の式は、割り当ての有効なターゲットではありません。
これを行うにはどうすればよいですか?
私が期待する出力は、マトリックス var(i,:) であり、これらのパターンのそれぞれが発生するマトリックス内の位置を示します。1行だけでも問題なく動作します。
例えば:
var(1,:) = [1 2 5 8 10 22 48]
var(2,:) = [2 3 4 7 34 45 NaN]
var(3,:) = [4 5 21 32 33 NaN]
ありがとう!