我正在使用以下代碼來計算跨各種資產的時間序列數據中的峯值。峯值被定義爲大於其相鄰點的任何時間點序列。根據峯值數量計算代碼中的分數,如下所示。 input_args是這種格式,rc是input_args的大小。這段代碼工作正常,但是當我長時間在資產上調用它時需要很長時間。他們是讓代碼更高效的一種方法。我正在尋找一種解決方案,通過該解決方案,我可以創建一個邏輯陣列,以確定滿足峯值條件的時間序列中的點,然後將它們隔離以計算得分?使用Matlab查找時間序列中的局部峯值和谷值
Data:-
1
0.997
0.979
0.952
0.935
0.942
0.987
1.027
1.036
1.049
function [maxhill] = hill_calc(input_args,rc)
for i=2:rc(1)-1
if and(input_args(i)>input_args(i+1),input_args(i)>input_args(i-1))
output_args_hills(i-1) = 2*input_args(i)-input_args(i+1)-input_args(i-1);
else output_args_hills(i-1) = NaN;
end
end
maxhill = max(output_args_hills);
end