我有以下形式的两个阵列:MATLAB:条件求和
v1 = [ 1 2 3 4 5 6 7 8 9 ... ]
c2 = { 'a' 'a' 'a' 'b' 'b' 'c' 'c' 'c' 'c' ... }
(所有数值仅是示例,没有图案可以假定在真实数据v1
和c2
具有相同的尺寸。)
我想获得一个向量,其中包含对应于c2
中相同值的v1
组件的总和。在上面的示例中,结果向量的第一个分量是1+2+3
,第二个分量是4+5
,依此类推。
我知道我可以在形式的循环做到这一点:
uni_c2 = unique(c2);
result = zeros(size(uni_c2));
for i = 1:numel(uni_c2)
result(i) = sum(v1(strcmp(uni_c2(i),c2)));
end
是否有一个命令或做同样的操作方式矢量?
”v1的分量的总和对应于c2中的相等值“。 c2中的连续值?例如:v1 = [1 2 3 4],c2 = ['a','b','a','a'],在这个例子中你期望的结果是什么? –