数组指定索引值的和

13次浏览(最近30天)
Khairul努尔
Khairul努尔 2021年5月29日
编辑: KALYAN ACHARJYA 2021年5月29日
嗨,我有两个数组。第一个数组包含索引,第二个数组(hasil_tambah_array)包含求和值,如下所示:
指数=
4
2
4
hasil_tambah_array =
3.6881
0.8506
0.0132
0.8506
10.5147
12.5147
14.5074
21.8003
11.2145
18.5074
我尝试将第二个数组汇总,例如3.6881,0.8506,0.0132和0.8506(因为第一个索引为4)将总和在一起。然后,10.5147和12.5147(由于第二索引为2)将总结和分别总和(下一个将是其余的索引为4)。
感谢你有时间解决这个问题。TQIA。

接受的答案

为副总经理
为副总经理 2021年5月29日
编辑:为副总经理 2021年5月29日
这是一种方法。这可能不是最有效的方法,但确实有效。
Idx = [4 2 4];
H = [3.6881 0.8506 0.0132 0.8506 10.5147 12.5147 14.5074 21.8003 11.2145 18.5074];
S = cellfun (@sum mat2cell (H idx 1))
S = 3×1
5.4025 23.0294 66.0296
记住,使用mat2cell()细分主向量需要sum(idx) = numel(H),所以要注意这点。
1评论
Khairul努尔
Khairul努尔 2021年5月29日
mat2cell工作好了!TQ操作!

登录评论。

答案(1)

KALYAN ACHARJYA
KALYAN ACHARJYA 2021年5月29日
编辑:KALYAN ACHARJYA 2021年5月29日
结果=总和(second_arary (first_array))
更多的
结果=总和(hasil_tambah_array(指数))
2的评论
KALYAN ACHARJYA
KALYAN ACHARJYA 2021年5月29日
指数= [4
2
4);
hasil_tambah_array = [3.6881
0.8506
0.0132
0.8506
10.5147
12.5147
14.5074
21.8003
11.2145
18.5074);
结果=总和(hasil_tambah_array(指数))
输出:
结果=
2.5518
更多:一样
> > 0.8506 + 0.8506 + 0.8506
ans =
2.5518

登录评论。

社区寻宝

在MATLAB中心找到宝藏,并发现社区如何可以帮助你!

开始狩猎!