gpt4 book ai didi

Matlab:对有限制的列元素求和

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

我们有一个 MxN 矩阵和一个约束 cstrn = 100; .

约束是列元素的汇总限制(每列):

sum(matrix(:,:))<=cstrn .

对于给定的例子如下:

Columns 1 to 5:
15 18 -5 22 19
50 98 -15 39 -8
70 -15 80 45 38
31 52 9 80 72
-2 63 52 71 6
7 99 32 58 41

我想找到满足此约束的每列元素的最大数量。

我如何汇总每一列元素与同一列中的其他元素,并找出哪些总和组合使用了每列的最大元素数?

在给定的示例解决方案中是:

   4  3  5  2  5

在哪里

column 1: 15 + 50 + 31 +7 +(-2)

column 2: 18 +(-15) + 52 or 63

提前谢谢你。

最佳答案

由于将小元素放入求和总是更容易,您可以进行排序,然后是累计和:

m= [
15 18 -5 22 19
50 98 -15 39 -8
70 -15 80 45 38
31 52 9 80 72
-2 63 52 71 6
7 99 32 58 41];

cs = cumsum(sort(m))
cs =
-2 -15 -15 22 -8
5 3 -20 61 -2
20 55 -11 106 17
51 118 21 164 55
101 216 73 235 96
171 315 153 315 168

现在您可以轻松地确定您在哪个元素上超过了阈值 cnstrn(感谢 @sevenless)!

out = sum(cs <= cnstrn)

out =
4 3 5 2 5

关于Matlab:对有限制的列元素求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13728586/

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