ismonotonic

Determines whether or not a vector or matrix is monotonically increasing or decreasing.
4.8K Downloads
Updated 20 Jan 2010

View License

Editor's Note: This file was a File Exchange Pick of the Week

ISMONOTONIC(X) returns a boolean value indicating whether or not a vector is monotonic.
By default, ISMONOTONIC returns true for non-strictly monotonic vectors,
and both monotonic increasing and monotonic decreasing vectors. For
matrices and N-D arrays, ISMONOTONIC returns a value for each column in
X.

ISMONOTONIC(X, 1) works as above, but only returns true when X is
strictly monotonically increasing, or strictly monotonically decreasing.

ISMONOTONIC(X, 0) works as ISMONOTONIC(X).

ISMONOTONIC(X, [], 'INCREASING') works as above, but returns true only
when X is monotonically increasing.

ISMONOTONIC(X, [], 'DECREASING') works as above, but returns true only
when X is monotonically decreasing.

ISMONOTONIC(X, [], 'EITHER') works as ISMONOTONIC(X, []).

ISMONOTONIC(X, [], [], DIM) works as above, but along dimension DIM.

NOTE: Third input variable is case insensitive, and partial matching is
used, so 'd' would be recognised as 'DECREASING' etc..

EXAMPLE:
x = [1:4; 6:-2:2 3]
ismonotonic(x)
ismonotonic(x, [], 'i')
ismonotonic(x, [], [], 2)

x =
1 2 3 4
6 4 2 3
ans =
1 1 1 1
ans =
1 1 0 0
ans =
1
0

NEW FEATURES in v1.1:
Code now fully vectorised.
Support for N-D arrays.
Character arrays now allowed.

ACKNOWLEDGEMENTS:
Thanks to Jos X for advice on vectorisation

Cite As

Richie Cotton (2024). ismonotonic (https://www.mathworks.com/matlabcentral/fileexchange/11637-ismonotonic), MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R14SP3
Compatible with any release
Platform Compatibility
Windows macOS Linux
Categories
Find more on Logical in Help Center and MATLAB Answers

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
Version Published Release Notes
1.2.0.0

String matching updated as per Jan Simon's suggestions.
Hungarian variable names changed to more matlabby ones.

1.0.0.0