- Is STR an input (i.e. it can be some other string) or a fixed part of the format?
- If it's actually an input does the 30 space change depending on the length of the input or is it fixed regardless?
- Similarly, is the 5 spacing dependent on the number of digits in the number (i.e. 2 digits = spacing of 4, 3 digits = spacing of 3, etc.)?
Insert desired number of spaces in the string contains numerical value
87 次查看(过去 30 天)
显示 更早的评论
Hi,
I need to print the below string which is in loop as
0 STR 1
where the first character is zero then 30 spaces then string STR and numerical 1 after five spaces
for this i wrote the statement as
txt = sprintf('0%30sSTR%5s%d',1);
But answer is not expected as above it gave the result as below
txt =
'0 STR'
2 个评论
Guillaume
2019-8-14
It's not entirely clear what you want and your example is lacking since your format string has three format specifiers (two strings and a decimal), yet you only give it one number.
采纳的回答
Guillaume
2019-8-14
The clearest way to achieve what you want is to put the spaces explicitly in your format string:
txt = sprintf('0 STR %d', istep)
or construct it explicitly:
txt = sprintf(['0', blanks(30), 'STR', blanks(5), '%d'], istep)
You could also use the format string that you've specified, by giving it spaces for the string formats:
txt = sprintf('0%30sSTR%5s%d', ' ', ' ', istep);
But in my opinion, it's less clear as to the intent than the other two options.
更多回答(1 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Characters and Strings 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!