我想知道,除了使用之外format compact,还有没有办法使矩阵的显示更紧凑或更紧密(也许是第三方软件包,它预先格式化了矩阵的输出?)
这是在MATLAB中显示的矩阵示例 format compact

从上图可以看出,列之间有很多空白。列之间的空白量是固定的,而不管多少位数每行或每列总共打印。
如果矩阵在给定的命令窗口宽度下具有多于一行的行数,则会浪费该空白,因为发生这种情况时,MATLAB只是将矩阵分解为几个子矩阵,从而使它们难以读取:

format short有点帮助,因为它仅保留4个小数位的空间(请参见下图),但是还有其他什么使它更紧密的内容(例如,使用户可以控制每个条目保留多少个字符的功能))?
例如比较一下
0 0 0 0 0 1 0 0 1 0
0 0 1 0 0 0 0 0 0 0
0 0 0 0 1 0 0 0 0 1
Run Code Online (Sandbox Code Playgroud)
与:

如果您确定条目都是 0 到 9 之间的整数(即一个字符),那么您可以使用:
fprintf([repmat('%d ',1,size(A,2)) '\n'],A');
Run Code Online (Sandbox Code Playgroud)
这会产生类似的东西
1 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 1 0 0
0 0 0 0 0 0 0 0 1 0
0 1 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1
0 0 0 0 0 0 1 0 0 0
0 0 0 1 1 0 0 0 0 0
0 1 0 0 0 0 0 0 0 0
0 0 0 0 1 0 0 0 0 0
0 0 1 0 0 1 0 0 0 0
Run Code Online (Sandbox Code Playgroud)
否则,对于一般整数,您可以使用以下方法获得最严格的格式:
fprintf([repmat(sprintf('%% %dd',max(floor(log10(abs(A(:)))))+2+any(A(:)<0)),1,size(A,2)) '\n'],A');
Run Code Online (Sandbox Code Playgroud)
它会产生类似的东西:
-111 -3 -2 31061 -2285 2 -2030 -2 -4 34
579 -31 1166 325 -24273 22 -13 -2 -1 -40
-150 -2 14166 39317 2 12 5119 9 -7 14
-4 56 -937 46085 -286 44 -28914 -76 -1477 -26938
-6661 11121 -63 -4 -275 -2014 4053 -697 -12308 -273
-2038 -3171 72640 4887 811 252 -114 2214 176 -2
19837 75428 -21 2038 36152 -11 3782 -33491 11082 -3628
47025 -42492 73009 6746 -5865 -14310 -51040 -7891 -1 1652
-223 -3 -566 -4 26892 -13 47538 -26949 -1 58930
13166 -5 169 78945 7 4135 -681 1863 -83 -2037
Run Code Online (Sandbox Code Playgroud)
您可以将它们包装为函数,甚至可以disp按照 OP 注释中的建议使用它们来重载。