How to generate string without space at the beginning?
5 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
YZ
am 20 Nov. 2014
Beantwortet: Kelly Kearney
am 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.
0 Kommentare
Akzeptierte Antwort
Kelly Kearney
am 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')))
0 Kommentare
Weitere Antworten (2)
Star Strider
am 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);
0 Kommentare
per isakson
am 20 Nov. 2014
Bearbeitet: per isakson
am 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');
0 Kommentare
Siehe auch
Kategorien
Mehr zu Characters and Strings finden Sie in Help Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!