How to check monotonity of a vector?
140 次查看(过去 30 天)
显示 更早的评论
How to check easily that components of a vector form a monotone (increasing) sequence or not?
1 个评论
Adam
2017-12-15
You can use
validateattributes( yourVector, { 'numeric' }, { 'vector', 'increasing' } )
if you just want to validate that it is monotonic and carry on with the code if it is while throwing an error otherwise.
采纳的回答
KL
2017-12-15
编辑:KL
2017-12-15
use diff
along with all maybe
a = 1:10;
isIncreasing = all(diff(a)) %or all(diff(a)>=0) if you want to allow 0 difference
1 个评论
Andreas
2022-3-16
Take care, that all is also true for negative values.
Therefore, this example has a false positive on b
a = [1:10];
b = [1 2 3 2 1 5];
isIncreasingA = all(diff(a))
isIncreasingB = all(diff(b))
To fix that, restrict to positive values of diff
isIncreasingA = all(diff(a)>0)
isIncreasingb = all(diff(b)>0)
更多回答(1 个)
Walter Roberson
2017-12-15
issorted() with 'ascend' (repeats permitted) or 'strictascend' (repeats not permitted)
0 个评论
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!