Matlab输出空间填充?

Matlab输出空间填充?,matlab,matrix,format,output,printf,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 有什么

我试图输出一个矩阵:

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
有什么想法吗

谢谢

您可以使用为每个显示的数字分配特定数量的字符。
比如说

 fprintf('% 5d\n', 12) 
以5个字符打印
12
,用空格填充未使用的3个前导字符。

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

disp(num2str(M));
返回

  1   20    3
 22    3   24
100  150    2

我假设您需要fprint()来写入文件或其他内容,否则您只需在命令窗口中执行
M
,而不使用分号,并且Matlab可以很好地对其进行格式化。我想知道您的首选项设置是否不正确,以便在命令窗口中不使用单间距字体。谢谢,就是这样:)@Shai如果您同时尝试这两种方式,您可以看到,
disp
在每行的开头添加空格,而
num2str
没有,这与OP期望的答案相匹配。