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));

Categories

Find more on Characters and Strings in Help Center and File Exchange

Products


Release

R2015a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!