MATLAB Answers

How to use cellstr() without losing whitespace character?

13 views (last 30 days)
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

Bruno Luong
Bruno Luong on 22 Sep 2019
The question needs to be illustrated with examples.
Michael Kainzbauer
Michael Kainzbauer on 8 Nov 2019
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.

Accepted Answer

Bruno Luong
Bruno Luong on 22 Sep 2019
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'}

More Answers (2)

madhan ravi
madhan ravi on 22 Sep 2019
Wanted = num2cell(your_char_array,2)

  1 Comment

Michael Kainzbauer
Michael Kainzbauer on 22 Sep 2019
yes, seems to do what i need. thx
num2cell([' test ';'test ';' a '],2)
ans =
' test '
'test '
' a '

Sign in to comment.


dpb
dpb on 22 Sep 2019
Edited: 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.

Sign in to answer this question.

Products


Release

R2015a

Translated by