2012-10-22 34 views
2

所以下面的代碼可以留下一個字符串保留最大長度max_len(包括空格和字符串)的空格。右墊字符串與空間Matlab

max_len = 20; 

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

padded_string = sprintf(spacing_arg, str); 

現在如何有效地使用正確的填充?

回答

9

這是你的意思嗎?

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

更妙的是,使用'的sprintf( '% - * S',MAX_LEN,STR)'。 – Charles

+0

(參考以上評論)實際上,該方法無法正常工作。你應該檢查過.. – BAR

2
max_len = 20; 
padded_str = repmat(' ',1, max_len); 
padded_str(1:min(20,length(str))) = str(1:min(20,length(str))); 
+0

有趣的方法,但它比下面更快.. – BAR

+0

我想你想打印你的空間填充字符串到某個地方,這將涉及使用額外的'fprintf()'。否則,這應該會更快(雖然不那麼直截了當)。還要注意,當max_len

+2

@ GermanGomez-Herrero:實際上,我測試了它 - 這個解決方案比* sprintf解決方案慢了約2倍。 –