Многомерный массив, отформатированный с помощью вывода оболочки Array в julia script / print () - PullRequest
0 голосов
/ 31 августа 2018

Если в оболочке Julia запустить функцию 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

Если вы сохраняете многомерный массив в переменной и печатаете его (или непосредственно печатаете) в оболочке или во внешнем скрипте, вы получите гораздо более уродливое:

[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]

Есть ли способ получить доступ к встроенному формататору Array STDOUT, который отображает его в читаемой форме в оболочке?

Ответы [ 2 ]

0 голосов
/ 31 августа 2018

для завершения @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 

примечание: вместо файла f вы также можете использовать стандартный вывод.

Для сохранения некоторых данных в потоке функция show больше подходит, чем display , как объяснено в документации (? 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.
0 голосов
/ 31 августа 2018

Используйте display(x) вместо print(x).

Обратите внимание, что print(x) может быть полезно в ситуациях, когда вам нужен код, выполняемый при копировании-вставке.

...