我想知道是否有一个matlab函数,根据另一个独立的整数数组,将数据组合在matlab二进制数据数组中。请参阅下面的例子。
d = [1 0 0 1 1 0 1 0 1 1 0 1 0]
c = [2 2 3 2 4]我想根据c数组添加d数组的元素,它的意思是,执行添加前2元素d(1)+d(2)、d(3)+d(4)的mod-2和d(5)+d(6)+d(7)的mod-2的模-2加法.
如果有人能让我知道一个matlab函数来执行这个任务,而不用使用太多的for循环,我真的很感激。
谢谢。
发布于 2012-04-27 00:17:42
一种方法是首先创建一个具有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发布于 2013-12-13 17:54:20
mod(diff([0 arrayfun(@(n) sum(d(1:n)), cumsum(c))]),2)https://stackoverflow.com/questions/10343076
复制相似问题