File Exchange

image thumbnail

logical2cellstr, cellstr2logical

version 1.3 (2.15 KB) by

Convert from a logical array to a cell array of 'true'/'false' strings and back again.

2 Downloads

Updated

View License

C = LOGICAL2CELLSTR(TF) takes a logical array TF, and returns a cell array of strings, with the value 'true' wherever TF is true, and 'false' wherever TF is false.

EXAMPLE:
logical2char([true false; false true])
ans =
'true' 'false'
'false' 'true'

TF = CELLSTR2LOGICAL(C) takes a cell array of strings and returns a logical array. Where the input value is 'true' (matched case insensitively), then the corresponding return value is true. Likewise, where the input value is 'false' (matched case insensitively), then the corresponding return value is false. An error is thrown if any other strings are contained in c.

TF = CELLSTR2LOGICAL(C, 1) is as above, but the strings are matched case sensitively.

EXAMPLES:
cellstr2logical({'false', 'True'; 'TRUE' 'FAlsE'})
ans =
0 1
1 0

Comments and Ratings (2)

Ben Oeveren

c = num2cell(true(thesize)); %keeps the logic
convert back with
logicalarray = cell2mat(c);

Jos (10584)

Jos (10584) (view profile)

No need for for-loops. In logical2cellstr:

c = cell(size(tf));
c(:) = {'false'} ;
c(tf) = {'true') ;

For cellstr2log, take a look at strcmpi or regexp ...

It was pleasure to find good help though with examples!

Updates

1.3

Minor bug fix.

1.2

I've taken Jos's helpful comments on board. Both functions are now verctorised and run much quicker, especially for larger matrices.

MATLAB Release
MATLAB 7.8 (R2009a)

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

» Watch video