0

私は1x10のベクトルを持っていますA

A = [11 22 33 44 55 66 77 88 99 111]

の各値は、 1x200Aのベクトルのインデックスを表します。B

ベクター内の各値を取得し、Aベクター内のこの値のインデックスに移動して、Bこのインデックスの値と前の 10 項目と後の 10 項目を取得します。

たとえば、ベクターの最初の要素Aは 11 なので、ベクターのインデックス 11 に移動しB、このインデックスの値 (11 番目の値) とその前の 10 個のアイテム (1 から 10) の値と 10 個のアイテムを取得します。後 (12 から 21 まで)、 のすべての要素で同じA

ループなしでそれを行うことは可能ですか?

4

2 に答える 2

2

ご利用にあたってはこちらbsxfun

R = B(bsxfun(@plus, A(:), -10:10));

ninには、要素inRに対応する要素が含まれています。ベクトルで使用する場合は、次のようにします。nA

R = reshape(B(bsxfun(@plus, A(:), -10:10)), 1, []);
于 2013-08-23T06:36:21.347 に答える