File Exchange

image thumbnail


version (11.1 KB) by Jan
Cat 2 or 3 strings/cell strings C-MEX: 10 times faster than STRCAT


Updated 10 Feb 2010

View Version History

View License

Join 2 or 3 strings and cell strings 10 times faster than STRCAT

R = CStrCatStr(A, B) or R = CStrCatStr(A, B, C)
A, B, C: Strings or cell strings. At least one input must be a cell string.
R: Cell string with the same size as the input cell.

Comparison with Matlab's STRCAT:
- MEX version is about 10 times faster that STRCAT.
- CStrCatStr is limited to 2 or 3 inputs with at least one cell string.
- CStrCatStr conserves marginal spaces.
- STRCAT('A', {}) replies: {'A'}. CStrCatStr('A', {}) replies: {}.
- CStrCatStr treats char arrays as single string with linear index.

CStrCatStr('a', {'a', 'b', 'c'}) % ==> {'aa', 'ab', 'ac'}
CStrCatStr({'a'; 'b'; 'c'}, '-') % ==> {'a-'; 'b-'; 'c-'}
CStrCatStr({' ', ''}, 'a', {' ', ''}) % ==> {' a ', 'a'}
CStrCatStr({'a', 'b'}, {'c'}) % ==> error: cells need equal size
FileDir = dir(Path); AbsName = CStrCatStr(Path, filesep, {});

Tested: Matlab 6.5, 7.7, 7.8, Win2K/XP, LCC2.4, LCC3.8, BCC5.5, 32 + 64 bit addressing.
Run unit-test TestCStrCatStr after compiling and for a speed test (see screen shot).
Compiled Mex:

Cite As

Jan (2021). CStrCatStr (, MATLAB Central File Exchange. Retrieved .

Comments and Ratings (0)

MATLAB Release Compatibility
Created with R2009a
Compatible with any release
Platform Compatibility
Windows macOS Linux

Community Treasure Hunt

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

Start Hunting!