行列から各行の異なる列を取得したいと考えています。例えば:各行に異なる列を取得する
A = [1,2;1,4;5,2]
B = [2;2;1]
出力が得られるはず:
out = [2;4;5]
だから要するに:A
は行列であり、B
は行ごとcolumsのインデックスを持っています。ループを使用せずにこれを行うにはどうしたらいいですか?
行列から各行の異なる列を取得したいと考えています。例えば:各行に異なる列を取得する
A = [1,2;1,4;5,2]
B = [2;2;1]
出力が得られるはず:
out = [2;4;5]
だから要するに:A
は行列であり、B
は行ごとcolumsのインデックスを持っています。ループを使用せずにこれを行うにはどうしたらいいですか?
あなたがマトリックスに線形インデックスに(i、j)のインデックスを変換するsub2indを使用することができ、そのベクトルBを想定作品
idx = sub2ind(size(A), 1:size(A, 1), B');
A(idx)
ans =
2 4 5
上記sub2indにおいてA.内の行と同じ数のエントリを有しています次の行番号(1:size(A、1))とBで与えられた列番号のすべての対に対して線形インデックスを生成します。
これは完全に動作します。ありがとうございます。私は完全に理解するためにsub2indのドキュメントを調べなければなりません。 – Tim