MATLAB Answers

0

How to use cellstr() without losing whitespace character?

Asked by Michael Kainzbauer on 22 Sep 2019
Latest activity Commented on by Michael Kainzbauer on 8 Nov 2019 at 4:29
Hi,
i need cellstr NOT to delete ending whitespace. Some strings have whitespace and i need those to stay alive.
Btw it's weird that cellstr does not perform a full strtrim but only deletes ending whitespace character.
{' test '} would do the job for just 1 string, how do i perform this on hundrets without a loop?
What is the best way to do that?
thx

  2 Comments

The question needs to be illustrated with examples.
a = cellstr(' test ') saves {' test'}
a = {' test '} saves {'test'}
i call this inconsistent ;)
a = num2cell(' test ',2) saves {' test '} what i needed

Sign in to comment.

Products


Release

R2015a

3 Answers

Answer by Bruno Luong
on 22 Sep 2019
 Accepted Answer

Pay attention to the difference between the two last commands
>> c1={'1' '12' '123'}
c1 =
1×3 cell array
{'1'} {'12'} {'123'}
>> c2=char(c1)
c2 =
3×3 char array
'1 '
'12 '
'123'
>> c3=cellstr(c2)
c3 =
3×1 cell array
{'1' }
{'12' }
{'123'}
>> c4=num2cell(c2,2)
c4 =
3×1 cell array
{'1 '}
{'12 '}
{'123'}

  1 Comment

Sign in to comment.


Answer by madhan ravi
on 22 Sep 2019

Wanted = num2cell(your_char_array,2)

  1 Comment

yes, seems to do what i need. thx
num2cell([' test ';'test ';' a '],2)
ans =
' test '
'test '
' a '

Sign in to comment.


Answer by dpb
on 22 Sep 2019
Edited by dpb
on 22 Sep 2019

Try the new string class...
s=string(your_char_array);
If you must end up with cellstr() array, then cast that result.
s=cellstr(string(your_char_array));

  0 Comments

Sign in to comment.