How to use cellstr() without losing whitespace character?

13 vues (au cours des 30 derniers jours)
Michael Kainzbauer
Michael Kainzbauer le 22 Sep 2019
Commenté : Abdullah Al Baki le 15 Juin 2022
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 commentaires
Bruno Luong
Bruno Luong le 22 Sep 2019
The question needs to be illustrated with examples.
Michael Kainzbauer
Michael Kainzbauer le 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

Connectez-vous pour commenter.

Réponse acceptée

Bruno Luong
Bruno Luong le 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'}

Plus de réponses (2)

madhan ravi
madhan ravi le 22 Sep 2019
Wanted = num2cell(your_char_array,2)
  1 commentaire
Michael Kainzbauer
Michael Kainzbauer le 22 Sep 2019
yes, seems to do what i need. thx
num2cell([' test ';'test ';' a '],2)
ans =
' test '
'test '
' a '

Connectez-vous pour commenter.


dpb
dpb le 22 Sep 2019
Modifié(e) : dpb le 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));

Catégories

En savoir plus sur Characters and Strings dans Help Center et File Exchange

Produits


Version

R2015a

Community Treasure Hunt

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

Start Hunting!

Translated by