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期望的答案相匹配。