gpt4 book ai didi

algorithm - MATLAB 中开始日期和结束日期之间的值之和

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:09:52 25 4
gpt4 key购买 nike

如果在 MATLAB 中,我有一组代表连续时间段的开始结束日期,我将如何采用单独的每日时间序列并累积上述时间序列中的所有值每个开始/结束对?

这可以用 accumarray() 来完成吗?我不清楚构建按开始/结束对对时间序列的每个元素进行分组的向量是否有效。

Inputs

Start Date End Date

01/01/12 01/31/12
02/01/12 02/28/12
...

Date Value

01/01/12 23
01/02/12 87
01/03/12 5
01/04/12 12
...
02/01/12 4

Output

Start Date End Date Value

01/01/12 01/31/12 127
02/01/12 02/28/12 4
...

最佳答案

对于连续的时间段,以下方法可能会奏效。请注意,包含日期的字符串是单元格字符串,对于连续数据,只有开始日期/结束日期矩阵的第一列是必需的。

此外,请注意,为了清楚起见,我将您的时间序列数据分为两个变量。

dateBins = {...
'01/01/12';
'02/01/12';
'03/01/12';
'04/01/12'};

dates = {
'01/01/12'
'01/02/12'
'01/03/12'
'01/04/12'
'02/01/12' };

values = [
23
87
5
12
4];

有了这些变量,下面的代码

[thrash, idx] = histc(datenum(dates), datenum(dateBins))

accumVal = accumarray(idx, values);

result = zeros(length(dateBins), 1);
result(1:length(accumVal),1) = accumVal;

将导致:

result =

127
4
0
0

关于algorithm - MATLAB 中开始日期和结束日期之间的值之和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13935703/

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