Version (11 KB) by Jan
Compare last N chars of strings or cell strings (fast C-Mex)


Updated 25 Feb 2022

View License

Compare last N chars of strings or cell strings
== 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)
S1, S2: Strings or cell strings.
N: Number of characters to compare.
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:
I'd appreciate suggestions for improvements and bug reports sent through email - thanks.

Cite As

Jan (2023). strncmpr (, MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2009a
Compatible with any release
Platform Compatibility
Windows macOS Linux
Find more on Characters and Strings 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

Mention EndsWith