image thumbnail

CStr2String

version 1.2.0.0 (8.46 KB) by Jan
Fast concatenation of cell strings to a string as C-Mex

1.9K Downloads

Updated 28 Nov 2010

View License

Concatenate strings of a cell string

This equals CAT(2, C{:}) and SPRINTF('%s', C{:}), but is remarkably faster,
because the output is pre-allocated.

Str = CStr2String(CStr, Separator, Trail)
INPUT:
CStr: Cell string of any size. All not-empty cell elements must be
strings ([1 x N] CHAR vectors).
Separator: String, which is appended after each string of CStr.
This is thought to emulate: "sprintf(['%s', Sep], CStr{:})".
Optional, default: ''.
Trail: String or logical flag. For 'noTrail' or FALSE the trailing
separator is omitted. Optional, default: 'Trail'.

OUTPUT:
Str: [1 x M] CHAR vector, concatenated strings of the input.

EXAMPLES:
Write a cell string to a file:
Slow: fprintf(FID, '%s\n', CStr{:});
Fast: fwrite(FID, CStr2String(CStr, char(10)), 'uchar');
A comma-separated list;
CStr = {'First', 'Second', 'Third'});
Str = CStr2String(CStr, ', ', 'noTrail');
>> 'First, Second, Third'

COMPILATION:
mex -O CStr2String.c
or download from: http://www.n-simon.de/mex
Please run the unit-test uTest_CStr2String after compiling!

Tested: Matlab 6.5, 7.7, 7.8, WinXP, 32bit
Compiler: LCC2.4/3.8, BCC5.5, OWC1.8, MSVC2008
Assumed Compatibility: higher Matlab versions, Mac, Linux, 64bit

See also: HORZCAT, CAT, SPRINTF, STRCAT.
FEX: http://www.mathworks.com/matlabcentral/fileexchange/28916-cell2vec

Cite As

Jan (2022). CStr2String (https://www.mathworks.com/matlabcentral/fileexchange/26077-cstr2string), MATLAB Central File Exchange. Retrieved .

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!