anyExceed

버전 1.1.0.0 (10.2 KB) 작성자: Jan
Fast test for out of range elements, C-mex
다운로드 수: 884
업데이트 날짜: 2011/11/1

라이선스 보기

Check if any element of an array exceeds an upper or lower limit

Equivalent Matlab expression:
any(Array(:) < Lower) || any(Array(:) > Upper)
This Mex is 50% to 80% faster in the worst case (see screenshot):
1. It does not create temporary arrays.
2. It returns fast after the first exceeding element without processing the rest.
3. Infinite values can be ignored and the absolute values of the elements can be computed on the fly whithout the need of temporary arrays.

Flag = anyExceed(Array, Lower, Upper, Options...)
INPUT:
Array: Array of any size. Accepted classes: DOUBLE, SINGLE, (U)INT8/16/32/64, CHAR.
Lower, Upper: Scalar limits.
Options: Optional strings to control the comparison. The options can be combined:
'finite': +-Inf values in [Array] are ignored.
'absolute': Compare absolute values.
'exclude': Exclusive limits:
Flag = any(Array(:) <= Lower) || any(Array(:) >= Upper)

OUTPUT:
Flag: TRUE if any element exceeds the limits, FALSE otherwise.

EXAMPLES:
anyExceed(rand(1000), 0, 1) % FALSE
anyExceed(0:0.1:1, 0, 1, 'exclude') % TRUE
anyExceed([1, Inf, 2], 0, 2, 'finite') % FALSE
anyExceed(-10:10, 0, 10, 'abs') % FALSE
anyExceed(-10:10, -1, 10, 'abs', 'ex') % TRUE

COMPILE:
Windows: mex -O anyExceed.c
Linux: mex -O CFLAGS="\$CFLAGS -std=C99" anyExceed.c
Precompiled Mex: http://www.n-simon.de/mex
See anyExceed.c for more information.
Run uTest_anyExceed for a selftest.

Tested: Matlab 6.5, 2008a/b, 2009a, 2001b, 32/64 bit, WinXP, Win 7
LCC, BCC, OWC, MSVC 2008 and 2010
Assumed compatibility: Linux, OS-X

Comments and suggestions by email or as comments are appreciated.

인용 양식

Jan (2024). anyExceed (https://www.mathworks.com/matlabcentral/fileexchange/27857-anyexceed), MATLAB Central File Exchange. 검색됨 .

MATLAB 릴리스 호환 정보
개발 환경: R2009a
모든 릴리스와 호환
플랫폼 호환성
Windows macOS Linux
카테고리
Help CenterMATLAB Answers에서 Data Type Identification에 대해 자세히 알아보기
도움

줌: csearch

Community Treasure Hunt

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

Start Hunting!
버전 게시됨 릴리스 정보
1.1.0.0

Tested under 2011b, 64bit.

1.0.0.0