需求:离散数据单调性较好判断,只需前后相邻两数据依次做对比即可。
本文给出一种更为简单的方法:直接查看原离散数据的极值点个数!
即:如果数据是"单调的或者是常数",那么它的"极大值点与极小值点"数目都是0!
所以:二者有一个不是0,就不是单调的。
操作如下:
% 一个函数的形式:每次调用把待判断数组传入即可;
% 返回一个判断标准flag
function flag = ismono(x)
[xtop,local1] = findpeaks(x); % 极大值
[xdown,local2] = findpeaks(-x); % 极小值
u = length(local1) + length(local2); % 都是0,和才是0!
if u == 0
flag = 0; % 单调的
else
flag = 1; % 非单调
end
网友评论