如果我执行以下操作:
A = [
2 1 3 0 0;
1 1 2 0 0;
0 6 0 2 1;
6 0 0 1 1;
0 0 -20 3 2
]
b = [10; 8; 0; 0; 0]
println(A\b)
输出为:
[8.000000000000002, 12.0, -6.000000000000001, -23.999999999999975, -24.000000000000043]
但是,我希望它看起来类似于Numpy输出同一问题结果的方式(编辑:但优选地保持尾随零和逗号):
[ 8. 12. -6. -24. -24.]
有简单的方法吗?我当然可以写自己的函数来做这件事,但是如果我能设置一些格式化标志就太好了。
谢谢!
3条答案
按热度按时间7lrncoxx1#
标准方法是更改
IOContext
:你可以写你的函数,例如(我不想在这里完全通用,而是向你展示的想法):
然后在代码中调用
prinlnc
。q8l4jmvw2#
您可以通过覆盖浮点数的
Base.show
方法来更改Julia中的REPL行为。现在您有:
正如@DNF所指出的,Julia在向量中使用逗号。如果你想得到一个水平向量(实际上是一个1xn矩阵),你需要转置:
yhxst69z3#
Numpy对你撒谎了。它只是在打印时隐藏数字。要检查它只操纵输出的打印,请执行
print(A @ X - b)
并查看结果。另一方面,Julia在前面就明确了这一点,如果你在Julia中做同样的事情,你会得到同样的结果(我和Numpy一样使用Foat64):
但是,您可以使用类似于数组的紧凑打印来删除不必要的数字。
这,比“丑陋”的
8. 12. -6. -24. -24.
好多了