1

別の個別の整数配列に従って、matlab バイナリ データ配列内のデータを結合する matlab 関数があるかどうかを知りたいです。以下の例を参照してください。

d = [1 0 0 1 1 0 1 0 1 1 0 1 0]
c = [2 2 3 2 4]

c配列に従ってd配列の要素を追加したいのですが、Thetは、最初の2つの要素を追加するmodulo-2加算を実行し 、次にmod-2のmod-2 、次にmod-2 などを実行します...d(1)+d(2)d(3)+d(4)d(5)+d(6)+d(7)

あまりにも多くの for ループを使用せずにこれを実行するための matlab 関数を教えていただければ、本当に感謝しています。

ありがとう。

4

2 に答える 2

0

1 つの方法は、最初に 2x1、2x2、3x3、2x4 などの配列を作成し、それを使用accumarrayして要素を合計することです。d

idxVector = zeros(size(d));
idxVector(cumsum(c(1:end-1))+1) = 1;
idxVector = cumsum(idxVector) + 1;
out = accumarray(idxVector(:),d(:))

out =

     1
     1
     2
     1
     2
于 2012-04-27T00:17:42.220 に答える