Matlab输出 - 空间填充?

时间:2013-09-03 13:03:29

标签: matlab matrix format output printf

我正在尝试输出矩阵:

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

有什么想法吗?

谢谢!

2 个答案:

答案 0 :(得分:4)

您可以使用string formatting为每个显示的号码分配特定数量的字符 例如

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

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

答案 1 :(得分:1)

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

disp(num2str(M));

返回

  1   20    3
 22    3   24
100  150    2