私は20x1の倍精度配列A
と1000x1の倍精度配列B
を持っています。別の配列のインデックスから配列の値を取得します。Matlab
B
の値がそうのよう
A
でインデックスに値を使用する場合、配列
C
はダブル1000x1なり、アレイ
C
、取得したい
:これは
C(1) = A(B(1))
C(2) = A(B(2))
...
C(i) = A(B(i))
...
c(1000) = A(B(1000))
を行うことができますどのように?
私は20x1の倍精度配列A
と1000x1の倍精度配列B
を持っています。別の配列のインデックスから配列の値を取得します。Matlab
B
の値がそうのよう
A
でインデックスに値を使用する場合、配列
C
はダブル1000x1なり、アレイ
C
、取得したい
:これは
C(1) = A(B(1))
C(2) = A(B(2))
...
C(i) = A(B(i))
...
c(1000) = A(B(1000))
を行うことができますどのように?
あなたは、このためのループを必要としません:
C = A(B)
これは、MATLABの行列インデックスを利用しています。これは、整数の代わりに配列が使用された場合のMATLABでのインデックス処理の方法です。
ドキュメントを見てください:例えばhttps://uk.mathworks.com/help/matlab/math/matrix-indexing.html
を:
A = [11 12 13];
B = [1 2 3 1 2 3 3 2 1];
C = A(B)
C =
11 12 13 11 12 13 13 12 11
BのみAの長さよりも(1よりも小さいか大きくないの有効な指標である整数が含まれていることを確認)。
が、これは理想的なソリューションであるかどうかわからない、以下に示すように、私はforループを使用してそれをやった:あなたは、直接使用することができます
C = zeros(1000,1);
for i = 1:1000
C(i,1) = A(B(i));
end
タイトルは非常に間違いです。私はあなたがMatlabのインスタンスを試していると思っていました。 – Bernhard