2012-04-27 20 views
1

別の別の整数配列に従ってデータをmatlabバイナリデータ配列に結合するmatlab関数があるかどうかを知りたいと思います。下記の例をご覧ください。Matlabバイナリベクトルのデータ要素を結合する

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

IはCアレイに従ってD配列の要素を追加するには、Thetは 次に、MOD-2 d(3)+d(4)の追加最初の2つの要素d(1)+d(2) のモジュロ2加算を実行する手段 、その後、MOD-2のd(5)+d(6)+d(7) 等...誰かが私が出て、ループのためにあまりにも多くの使用でこれを実行するには、MATLAB関数を知らせることができた場合

は本当に感謝しています。

ありがとうございました。

+0

あなたの例では、要素を合計するaccumarrayを使用することは非常にされていないです明らかに、あなたのテキストを 'd'と' c'に少しだけ良く一致させることができますか? –

+0

私は、c配列が意味する操作によって混乱しています。どうか明らかにしてください。 – learnvst

+0

上記を参照してください、私はいくつかの変更を加えました...今はっきりしていることを願っています – anne

答えて

0

一つの方法は、まずなど2x1の、2x2の、3x3の、2x4のを持つ配列を作成し、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 
+0

ここでの問題は、2進法でモジュロ2加算を実行したいということです。 – anne

+0

@anne:追加の結果を書き留めていただけますか? – Jonas

0
mod(diff([0 arrayfun(@(n) sum(d(1:n)), cumsum(c))]),2) 
関連する問題