在julia脚本/ print()中使用shell Array输出格式化的多维数组

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在julia脚本/ print()中使用shell Array输出格式化的多维数组相关的知识,希望对你有一定的参考价值。

当你在Julia shell中运行zeros(5, 5)函数时,会得到如下所示的内容:

 0.0  0.0  0.0  0.0  0.0
 0.0  0.0  0.0  0.0  0.0
 0.0  0.0  0.0  0.0  0.0
 0.0  0.0  0.0  0.0  0.0
 0.0  0.0  0.0  0.0  0.0

如果将多维数组存储在变量中并在shell或外部脚本中打印(或直接打印),您将获得更加丑陋的内容:

[0.0 0.0 0.0 0.0 0.0; 0.0 0.0 0.0 0.0 0.0; 0.0 0.0 0.0 0.0 0.0; 0.0 0.0 0.0 0.0 0.0; 0.0 0.0 0.0 0.0 0.0]

有没有办法访问以STDOUT格式构建的Array,它在shell中以人类可读的方式显示它?

答案

使用display(x)而不是print(x)

请注意,print(x)在需要复制粘贴可运行代码的情况下非常有用。

另一答案

完成@crstnbr的答案我也建议秀

M=rand(2,3)
f = open("test.txt","w")
show(f, "text/plain", M)
close(f)

那么如果你阅读并打印test.txt,你会得到:

julia> print(read("test.txt",String))
2×3 Array{Float64,2}:
 0.73478   0.184505  0.0678265
 0.309209  0.204602  0.831286 

注意:您也可以使用stdout而不是文件f。

要在流中保存一些数据,函数show比显示更合适,如文档(?display)中所述:

 In general, you cannot assume that display output goes to stdout (unlike print(x)
  or show(x)). For example, display(x) may open up a separate window with an image.
  display(x) means "show x in the best way you can for the current output device(s)."
  If you want REPL-like text output that is guaranteed to go to stdout, use
  show(stdout, "text/plain", x) instead.

以上是关于在julia脚本/ print()中使用shell Array输出格式化的多维数组的主要内容,如果未能解决你的问题,请参考以下文章

Python导入Julia导致冻结脚本的其他部分

使用Julia PyCall,在Julia模块中使用matplotlib.pyplot

在 Julia 的函数中重新分配字典值

shell脚本中变量的递归使用--真实内存使用查看脚本

Julia 从脚本请求用户输入

如果从命令行运行 Julia 脚本,是不是每次都需要重新编译?