我有一个8760值的向量(值可以是1.2,3.0,7.6,2.5,8.4,6.3等),我想找到这些 24连续值给出最大金额。我还想知道第一个值的具体位置是这个总和。
向量是一个Excel文件,在Matlab中读作Pload=xlsread('demand.xlsx');
答案 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()