Julia中如何以标准矩阵格式打印/显示二维数组或矩阵
问题说明
我需要将形如A = [1 1; 2 2; 3 3]的二维数组(矩阵)以规范的矩阵排版格式打印输出,但目前调用println(A)时,仅能输出[1 1; 2 2; 3 3]这类带分号的单行紧凑格式。请问是否存在类似@show的函数或宏,可将数组按照标准矩阵格式进行打印?
期望打印效果参考:
解决方法
你可以根据使用场景选择对应方案,不需要手动实现排版逻辑:
- 原生环境无额外依赖方案
Julia默认已经内置了面向阅读的矩阵排版打印能力,println/print输出单行紧凑格式是刻意设计的——这个格式是合法的Julia代码,方便直接复制回REPL重建矩阵。要输出多行对齐的标准矩阵格式,直接调用display函数即可:
如果需要在非交互环境(比如脚本运行)中输出同样格式,可以显式指定julia> A = [1 1;2 2;3 3] 3×2 Matrix{Int64}: 1 1 2 2 3 3 julia> display(A) 3×2 Matrix{Int64}: 1 1 2 2 3 3show的MIME类型为纯文本富格式:
如果需要实现类似show(stdout, MIME"text/plain"(), A)@show同时打印变量名+排版后矩阵的效果,可以直接组合调用:println("A = "); display(A) - 需要教材式带包围括号的矩阵排版
安装PrettyTables.jl包后,调用pretty_table并指定矩阵边框参数,即可输出带左右方括号、元素严格对齐的出版级矩阵样式:# 先安装包:进入Pkg模式执行 add PrettyTables using PrettyTables A = [1 1;2 2;3 3] pretty_table(A, border = :matrix, show_header = false)
补充说明:在Julia交互式REPL中,直接输入矩阵变量名回车,默认调用的就是富格式排版输出,和display效果完全一致。
内容的提问来源于stack exchange,提问作者James Rider
相关产品推荐
相关产品推荐

