Sometimes it’s easier if what gets printed by a function looks nice (like in the REPL):
function printout(x)
println("x is: ",x)
end
Ex 1. Beautiful formatting that can be instantly read and understood:
check = rand(2,10)
2×10 Array{Float64,2}:
0.20608 0.675941 0.267637 0.231587 0.404712 0.628064 0.727315 0.292798 0.579271 0.00830696
0.570077 0.440174 0.997781 0.842532 0.752924 0.360579 0.368976 0.264956 0.20852 0.166019
Ex. 2. Printing from inside a function: the first semi-colon is somewhere in there…
printout(check)
x is: [0.20607999980294323 0.6759405043446565 0.2676368465413639 0.23158728513903615 0.40471156297506106
0.6280638109428014 0.7273151713873742 0.2927977847045118 0.5792709021856115 0.008306955592047194; 0.5700766059127313 0.4401739651076826
0.9977809895843064 0.8425324418892446 0.7529240018391419 0.360578553537942 0.3689764314494348 0.26495555789141423 0.20851971242325895 0.1660188215790821]
How can I make printout()
give me output like Ex. 1 ?
sostock
September 1, 2020, 7:22am
2
printout(x) = show(stdout, MIME"text/plain"(), x)
4 Likes
Thanks @sostock , sorry that my post was unclear. I meant to ask how to print an intermediate value (not the returned value) from inside a function.
This works:
function printout(x)
display(x)
end
check = rand(2,10);
printout(check);
2×10 Array{Float64,2}:
0.571579 0.793269 0.68453 0.732311 0.316721 0.167078 0.521398 0.830209 0.546623 0.852014
0.98618 0.240232 0.50574 0.282009 0.329084 0.804751 0.044719 0.320697 0.735516 0.254228
mkarikom:
This works:
Not in general. display
may not output to stdout
, and may not output plain text. It may open a window and display an image, for example, or use HTML display in an IJulia window. If you explicitly want text/plain
output, you should use show(stdout, "text/plain", x)
,
2 Likes
Thanks @stevengj , MWE for reference below:
function printout(x)
show(stdout, "text/plain", x)
end
check = rand(2,10);
printout(check);
Array{Float64,2}:
0.833317 0.0797113 0.305283 0.848721 0.897141 0.99114 0.694138 0.28158 0.82193 0.520097
0.187817 0.439049 0.922296 0.141583 0.172123 0.244657 0.720784 0.0473979 0.610638 0.941219