在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输出格式化的多维数组的主要内容,如果未能解决你的问题,请参考以下文章