1

いくつかの要素 (A) で構成される配列があり、n 番目の要素を取り、それに続くいくつかの要素と合計したい場合、各要素の位置を示す行列があるとします。 (B) の合計を開始する必要があります。

たとえば、私は

A = [2 3 4 5 6 3 5 7 3 7 3 7 4 7 3 6 2 6 3 8 4 8 4 8 5 8 3]

そして、私が持っています

B = [8 12 15]

したがって、位置 B(1,1) の値を合計したいのですが、これは 8 なので、A(1,8) は行列の次の 4 つの要素となります。

C(1,1) = 7 + 3 + 7 + 3
C(1,2) = 7 + 4 + 7 + 3
C(1,3) = 3 + 6 + 2 + 6
4

2 に答える 2

1

使うのはいつもとても楽しいbsxfunです:

idx = bsxfun( @plus, B, (0:3)' ); %//' indices of A to be summed together
C = sum( A(idx), 1 );
于 2013-06-13T22:34:23.093 に答える