gpt4 book ai didi

arrays - Matlab:在列中查找重复值,并对与它们关联的值求和(在另一列中)

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

我想是个简单的问题:我有 2 个向量,一个的索引号从 1 到 10,另一个只有随机值。

id = [1 2 3 4 4 4 5 6 7 7];
val = [.8 .9 .12 .91 .63 .09 .28 .55 .96 .96 ]

我正在寻找的结果应该是这样的:

new_id = [1 2 3 4 5 6 7];
val = [.8 .9 .12 1.63 .28 .55 1.92]

我该怎么做?谢谢!

最佳答案

使用uniqueaccumarray :

[new_id, ~, v] = unique(id(:));
val_summed = accumarray(v, val(:));

即使 id 不一定是正整数,上面的代码仍然有效。如果是,另一种方法是使用 sparse求和 find提取所需的结果:

[new_id, ~, val_summed] = find(sparse(id, 1, val));

关于arrays - Matlab:在列中查找重复值,并对与它们关联的值求和(在另一列中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29758601/

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