【问题标题】:Right Pad String with spaces Matlab带空格的右填充字符串 Matlab
【发布时间】:2012-10-11 19:40:05
【问题描述】:

所以下面的代码可以用空格填充一个字符串,保持 max_len 的最大长度(包括空格和字符串)。

max_len = 20; 

spacing_arg = ['% ', max_len,'s'];

padded_string = sprintf(spacing_arg, str);

现在如何使用正确的填充有效地做到这一点?

【问题讨论】:

    标签: matlab padding


    【解决方案1】:

    这是你的意思吗?

    max_len = 20; 
    spacing_arg = ['%-', num2str(max_len),'s'];
    padded_string = sprintf(spacing_arg, str);
    

    【讨论】:

    • 最好还是使用sprintf('%-*s', max_len, str)
    • (参考上面的评论)实际上该方法无法正常工作。你应该之前检查过..
    【解决方案2】:
    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) 时,此解决方案和我的以下解决方案的行为不同。
    • @GermanGomez-Herrero:实际上,我已经测试过了——这个解决方案比你的sprintf 解决方案大约2倍。
    猜你喜欢
    • 2021-05-20
    • 2023-03-30
    • 2012-07-21
    • 2016-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多