Sum variable size chunks in array
显示 更早的评论
Hello,
I am looking for a vectorized way of summing variable size chunks in a matrix, for example I have some matrix
A = [1 2 3 4 5 6 7 8
3 4 2 2 8 4 2 9]
and I want to do a rowwise summation using some vector as a rule, for example
v = [2 3 3]
In this case the result would be a 2x3 where the first column would be the summation of the first 2 columns in A (according to v),
the second column would be the summation of the next 3 columns in A etc. I can think of various ways of doing this using loops
but I am wondering if there is a faster vectorized way of doing it ?
Thank you!
采纳的回答
更多回答(1 个)
Fangjun Jiang
2019-3-20
编辑:Fangjun Jiang
2019-3-20
B=mat2cell(A,size(A,1),v);
C=cellfun(@(x) sum(x(:)),B)
or should be this
B=mat2cell(A,size(A,1),v);
C=cell2mat(cellfun(@(x) sum(x,2),B,'uni',0));
类别
在 帮助中心 和 File Exchange 中查找有关 Logical 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!