2

我正在尝试输出一个矩阵:

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

有任何想法吗?

谢谢!

4

2 回答 2

5

您可以使用字符串格式为每个显示的数字分配特定数量的字符。
例如

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

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

于 2013-09-03T13:08:01.953 回答
1

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

disp(num2str(M));

返回

  1   20    3
 22    3   24
100  150    2
于 2013-09-03T13:17:21.327 回答