File Exchange

image thumbnail

CStrCatStr

version 1.3 (11.1 KB) by

Cat 2 or 3 strings/cell strings C-MEX: 10 times faster than STRCAT

3 Downloads

Updated

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)
INPUT:
A, B, C: Strings or cell strings. At least one input must be a cell string.
OUTPUT:
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.

EXAMPLES:
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, {FileDir.name});

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: http://www.n-simon.de/mex

Comments and Ratings (0)

Updates

1.3

32 + 64 bit addressing

1.2

Shorter description, sources are not changed

MATLAB Release
MATLAB 7.8 (R2009a)

Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.

» Watch video