How to generate string without space at the beginning?

4 vues (au cours des 30 derniers jours)
YZ
YZ le 20 Nov 2014
FieldsLetter = repmat('Item_',16,1);
FieldsDigit = num2str(transpose(2:2:16),'%1d');
Fields = strcat(FieldsLetter, FieldsDigit);
The result from above code is Fields =
Item_ 2
Item_ 4
Item_ 6
Item_ 8
Item_10
Item_12
Item_14
Item_16
But what I want is Fields =
Item_2
Item_4
Item_6
Item_8
Item_10
Item_12
Item_14
Item_16
So how to generate string by using num2str without the space at the beginning? Thank you.

Réponse acceptée

Kelly Kearney
Kelly Kearney le 20 Nov 2014
Easier, you can just add the string part to the num2str format:
Fields = num2str((2:2:16)', 'Item_%d');
Of course, this right-justifies the final results, which may or may not matter to you. If you're looking to get a cell array of strings eventually, you can quickly trim the extra whitespace:
Fields = strtrim(cellstr(num2str((2:2:16)', 'Item_%d')))

Plus de réponses (2)

Star Strider
Star Strider le 20 Nov 2014
Change '%1d' to '%-1d'. The ‘-’ in front of the format descriptor left-justifies it.
FieldsLetter = repmat('Item_',8,1);
FieldsDigit = num2str(transpose(2:2:16),'%-1d');
Fields = strcat(FieldsLetter, FieldsDigit);

per isakson
per isakson le 20 Nov 2014
Modifié(e) : per isakson le 20 Nov 2014
num2str creates a rectangular character array. The "extra" space can be moved to the end of the string. If that's ok
Replace
FieldsDigit = num2str(transpose(2:2:16),'%1d');
by
FieldsDigit = num2str(transpose(2:2:16),'%-2d');
And read the documentation on num2str. Note:
'–' Left-justify. Example: %-5.2f
An alternative is to insert a leading zero
FieldsDigit = num2str(transpose(2:2:16),'%02d');

Catégories

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

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by