How to generate string without space at the beginning?

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.

 採用された回答

Kelly Kearney
Kelly Kearney 2014 年 11 月 20 日

2 投票

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

その他の回答 (2 件)

Star Strider
Star Strider 2014 年 11 月 20 日

1 投票

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 2014 年 11 月 20 日
編集済み: per isakson 2014 年 11 月 20 日

1 投票

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

カテゴリ

ヘルプ センター および File ExchangeCharacters and Strings についてさらに検索

製品

タグ

質問済み:

YZ
2014 年 11 月 20 日

回答済み:

2014 年 11 月 20 日

Community Treasure Hunt

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

Start Hunting!

Translated by