【发布时间】:2012-10-11 19:40:05
【问题描述】:
所以下面的代码可以用空格填充一个字符串,保持 max_len 的最大长度(包括空格和字符串)。
max_len = 20;
spacing_arg = ['% ', max_len,'s'];
padded_string = sprintf(spacing_arg, str);
现在如何使用正确的填充有效地做到这一点?
【问题讨论】:
所以下面的代码可以用空格填充一个字符串,保持 max_len 的最大长度(包括空格和字符串)。
max_len = 20;
spacing_arg = ['% ', max_len,'s'];
padded_string = sprintf(spacing_arg, str);
现在如何使用正确的填充有效地做到这一点?
【问题讨论】:
这是你的意思吗?
max_len = 20;
spacing_arg = ['%-', num2str(max_len),'s'];
padded_string = sprintf(spacing_arg, str);
【讨论】:
sprintf('%-*s', max_len, str)。
max_len = 20;
padded_str = repmat(' ',1, max_len);
padded_str(1:min(20,length(str))) = str(1:min(20,length(str)));
【讨论】:
fprintf()。否则,这可能会更快(尽管不那么简单)。另请注意,当max_len<length(str) 时,此解决方案和我的以下解决方案的行为不同。
sprintf 解决方案慢大约2倍。