MATLAB求一个时间序列极大值,极小值及个数(每个周期内最大值,最小值的个数),数据为xls格式
这两天做任务有遇到用matlab去做数据处理,得到一组数组的所有极大值极小值个数 ,写一个简单的例子记录下。
1、数据
部分数据截图:
数据大小为1001*9;求每列的极大值极小值个数。
代码:
clear
data = xlsread('..\test.xls');
[row,col]=size(data);
num_top=zeros(1,col);
num_low=zeros(1,col);
for i =1:col
data_i = data(:,i);
[data_high_i]=findpeaks(data_i);
[data_low_i] =findpeaks(-data_i);
num_top(i)=length(data_high_i);
num_low(i)=length(data_low_i);
end
disp('每一列极大值点个数:');
disp(num_top);
disp('每一列极小值点个数:');
disp(num_low)
输出结果: