gpt4 book ai didi

Julia:哪个环境变量/设置控制在 repl 中为数组打印的元素数量?

转载 作者:行者123 更新时间:2023-12-01 04:26:51 25 4
gpt4 key购买 nike

当我打印

rand(1_000_000)

它打印第一个 N行并打印最后一个 N线。这是怎么回事 N确定以及如何控制此 N ?

enter image description here

最佳答案

大小来由Base.displaysize(::IO)计算,您可以看到它应该报告 stdout 的终端大小,并报告 IOBuffers 的“标准”大小:

julia> Base.displaysize(stdout)
(19, 81)


julia> Base.displaysize(IOBuffer())
(24, 80)

julia> Base.displaysize()
(24, 80)

这在完整的 show() 中被称为在 REPL 中显示数组的方法:
show(io::IO, ::MIME"text/plain", X::AbstractArray) , 内部 print_matrix , 这里:
    if !get(io, :limit, false)
screenheight = screenwidth = typemax(Int)
else
sz = displaysize(io)
screenheight, screenwidth = sz[1] - 4, sz[2]
end

https://github.com/NHDaly/julia/blob/879fef402835c1727aac52bafae686b5913aec2d/base/arrayshow.jl#L159-L164

请注意,在该函数中, io实际上是一个 IOContext ,正如@Fengyang Wang 在这个答案中所描述的那样: https://stackoverflow.com/a/40794864/751061 ,您也可以手动设置 displaysize在 IOContext 上,如果你想自己控制它(为 julia 1.0 更新):
julia> show(IOContext(stdout, :limit=>true, :displaysize=>(10,10)), MIME("text/plain"), rand(1_000_000))
1000000-element Array{Float64,1}:
0.5684598962187111
0.2779754727011845
0.22165656934386813

0.3574516963850929
0.914975294703998

最后,为了关闭循环,在 REPL 处显示一个值变成 show(io, MIME("text/plain"), v) , 通过 display :
https://github.com/NHDaly/julia/blob/879fef402835c1727aac52bafae686b5913aec2d/base/multimedia.jl#L319

关于Julia:哪个环境变量/设置控制在 repl 中为数组打印的元素数量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57898253/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com