strncmpr
Version 1.0.0.1 (11 KB) by
Jan
Compare last N chars of strings or cell strings (fast C-Mex)
Compare last N chars of strings or cell strings
== FOR OLD MATLAB VERSIONS ONLY!
== Use EndsWith() in modern versions!
Input and output equal Matlab's STRNCMP/STRNCMPI, but the strings are compared from right to left.
T = strncmpr(S1, S2, N) or T = strncmpir(S1, S2, N)
INPUT:
S1, S2: Strings or cell strings.
N: Number of characters to compare.
OUTPUT:
T: Logical array, TRUE if the last N characters are equal, FALSE otherwise.
For STRNCMPIR the case is ignored.
Comparing just two strings in the backward direction can be done in Matlab with a fair efficiency. But for cell strings, this C-Mex is much faster than equivalent Matlab methods: e.g. 3% processing time for comparing a string with a {1 x 100} cell, 1% for {1 x 1000}. I apply it to identify the extensions of file names stored in cell strings.
Call the unit-test function Teststrncmpr to check validity and speed.
Tested: Matlab 6.5, 7.7, 7.8, WinXP, compatibility to Linux and OS-X assumed.
Compiler: LCC2.4/3.8, BCC5.5, OpenWatcom 1.8, MSVC 2008.
It is assumed that wchar_t has the same size as mxChar.
Pre-compiled Mex: http://www.n-simon.de/mex
I'd appreciate suggestions for improvements and bug reports sent through email - thanks.
Cite As
Jan (2024). strncmpr (https://www.mathworks.com/matlabcentral/fileexchange/27032-strncmpr), MATLAB Central File Exchange. Retrieved .
MATLAB Release Compatibility
Created with
R2009a
Compatible with any release
Platform Compatibility
Windows macOS LinuxCategories
Find more on Characters and Strings in Help Center and MATLAB Answers
Tags
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!Discover Live Editor
Create scripts with code, output, and formatted text in a single executable document.