Matlab的输出 - 空间填充?(Matlab output - Space padding?)

2019-09-28 02:26发布

我试图输出矩阵:

M = [1 20 3; 22 3 24; 100 150 2];

使用:

for i=1:3
    fprintf('%f\t%f\t%f\n', M(i), M(i+length(M)), M(i+length(M)*2));
end

和输出转向了是这样的:

1 20 3
22  3  24
100  150  2

这显然不是很大。 我怎样才能得到它这样的整数的前面都用空格填充? 像这样:

  1   20   3
 22    3  24
100  150   2

有任何想法吗?

谢谢!

Answer 1:

您可以使用字符串格式化来分配每个显示的字符数的具体数目。
例如

 fprintf('% 5d\n', 12) 

打印12在5个字符,填充用空格未使用3个前导字符。



Answer 2:

您可以使用num2str (任选格式字符串%f ),并将其应用到整个矩阵,而不是每一行,让你得到正确的填充:

disp(num2str(M));

回报

  1   20    3
 22    3   24
100  150    2


文章来源: Matlab output - Space padding?