julia - 如何在 Julia 中将矩阵漂亮地打印到字符串?

标签 julia

使用方法 show pretty-print 矩阵到字符串?

可以打印到 stdoutshow(stdout, "text/plain", rand(3, 3)) .

我正在寻找类似 str = show("text/plain", rand(3, 3)) 的东西

最佳答案

通常用于简单的转换 DelimitedFiles是你最好的 friend 。

julia> a = rand(2,3);

julia> using DelimitedFiles

julia> writedlm(stdout, a)
0.7609054249392935      0.5417287267974711      0.9044189728674543
0.8042343804934786      0.8206460267786213      0.43575947315522123

如果要捕获输出,请使用缓冲区:
julia> b=IOBuffer();

julia> writedlm(b, a)

julia> s = String(take!(b))
"0.7609054249392935\t0.5417287267974711\t0.9044189728674543\n0.8042343804934786\t0.8206460267786213\t0.43575947315522123\n"

最后但并非最不重要的一点是,如果您想获得更强的控制,请使用 CSV - 模式是相同的 - 要么使用 stdout或使用缓冲区捕获输出,例如:
julia> using CSV, Tables

julia> b=IOBuffer();

julia> CSV.write(b, Tables.table(a));

julia> s = String(take!(b))
"Column1,Column2,Column3\n0.7609054249392935,0.5417287267974711,0.9044189728674543\n0.8042343804934786,0.8206460267786213,0.43575947315522123\n"

甚至更多 - 如果您想捕获来自 display 的输出- 你也可以!
julia> b=IOBuffer();

julia> t = TextDisplay(b);

julia> display(t,a);

julia> s = String(take!(b))
"2×3 Array{Float64,2}:\n 0.760905  0.541729  0.904419\n 0.804234  0.820646  0.435759"

关于julia - 如何在 Julia 中将矩阵漂亮地打印到字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60443197/

相关文章:

installation - 在安装 v0.6 的同时在 Ubuntu 16.04 上安装 Julia v0.5

types - 在 Julia 的方法中传播类型参数

iterator - 使用 `@transform` 在 Julia 中转换 DataFrame

使用 fortran 包装的右侧时,Julia 的 DifferentialEquations 包失败

julia - 方法错误 : no method matching in user defined function

Julia 中的构造函数 : initializing named fields based on the input value of other named fields

julia - 我如何在 Julia 中获得输入的整数或数组?

julia - 解析或编译而不执行

julia - 有没有办法在 Julia 中绘制布局,每个图使用不同的颜色?

julia - Julia 中加载/导入的包列表