找到向量中特定数量值的最大总和 - Matlab

时间:2015-07-04 17:22:32

标签: excel matlab

我有一个8760值的向量(值可以是1.2,3.0,7.6,2.5,8.4,6.3等),我想找到这些 24连续值给出最大金额。我还想知道第一个值的具体位置是这个总和。

向量是一个Excel文件,在Matlab中读作Pload=xlsread('demand.xlsx');

2 个答案:

答案 0 :(得分:3)

如果你坚持使用Matlab,你可以使用conv(卷积)函数为你做总和,然后找到max的位置:

假设您的数据位于名为A的向量中,并且我将nc称为求和的连续数据的数量:

nc = 24 ;             %// number of consecutive values to sum
kn = ones(nc,1) ;     %// define a kernel for the convolution

C = conv(A,kn) ;      %// calculate a "moving sum"
[~,idx] = max(C) ;    %// find the max of the convolution result
idx = idx - nc + 1 ;  %// The starting index of the FIRST maximum sum is here

如果你有几个相同的最大值,这只会返回第一个的索引。

答案 1 :(得分:0)

将值放在 A 列中。在 B24 中输入:

=SUM(A1:A24)

向下复制。

最后使用:

=MAX(B24:B7860)

要获得该职位,请使用 = MATCH()