gpt4 book ai didi

MATLAB:条件求和

转载 作者:太空宇宙 更新时间:2023-11-03 20:26:39 25 4
gpt4 key购买 nike

我有以下形式的两个数组:

v1 = [ 1 2 3 4 5 6 7 8 9 ... ]
c2 = { 'a' 'a' 'a' 'b' 'b' 'c' 'c' 'c' 'c' ... }

(所有值仅为示例,真实数据中不能假定任何模式。v1c2 大小相同)

我想获得一个向量,其中包含与 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

是否有执行相同操作的单个命令或矢量化方式?

最佳答案

您可以分两行执行此操作:

[b, m, n] = unique(c2)
result = accumarray(n', v1)

result的元素对应元胞数组b中的字符串。

关于MATLAB:条件求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8024639/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com