使用预定义内核(Matlab)进行尾随和计算

时间:2017-01-11 09:18:45

标签: matlab function sum kernel

表Z: enter image description here

目标:计算表格中向上看的任何日期点的12点尾随总和,例如2016年5月20日必须显示阴影区域的总和(0.1768)。

到目前为止:

[rows, columns] = size(Z);
onesVector = ones(rows, 1);
kernel12t = [0;0;0;1;1;1;1;1;1;1;1;1;1;1;1]; % Kernel that computes
% the trailing 12 values
trailingSum12t = zeros(rows, columns);
for col = 4 : columns
    thisColumn = Z{:, col}; % Extract all rows from this column.
    cellSum12t = conv(onesVector, kernel12t, 'same');
    valuesSum12t = conv(thisColumn, kernel12t, 'same');
    trailingSum12t(:, col) = valuesSum12t;
end

" trailingSum12t "的结果显示如下。但是,突出显示的单元格不应该是0.1760而是0.1768。奇怪的是,我发现一个单元格(第8行)中的12点尾随内核(0.1768)的正确总和,它不应该是。 enter image description here

另一个问题可以在" cellSum12t " (见下文):行551-554应该包含12个! enter image description here

" cellSum12t "的上半部分看起来很完美(见下文):

enter image description here

1 个答案:

答案 0 :(得分:0)

将内核中的零调整为n - 1,其中n =(尾随和窗口)

methodX()