当前位置: 首页 > 知识库问答 >
问题:

获取变量的Julia REPL输出为字符串

梁池暝
2023-03-14

我想得到的输出,就像它是打印在朱莉娅REPL作为字符串,没有打印到REPL。

假设您有一个大矩阵x

x = rand(100, 100)

在REPL中,x以一种很好的方式显示。我希望得到这个输出作为一个字符串与函数调用(不是在一个黑客的方式)。我怎么能这么做?

repr(x)
repr(x, context = :displaysize => (80,80))
repr(x, context = :limit => true)

我用print函数和iocontext尝试了同样的方法

io = IOBuffer();
print(IOContext(io, :limit => true), x)
String(take!(io))

这将给出与repr相同的结果。

共有1个答案

蒲坚
2023-03-14

我猜这就是你想要的:

julia> x=rand(100,100);

julia> io = IOBuffer();

julia> show(IOContext(io, :limit => true, :displaysize => (10, 10)), "text/plain", x);

julia> s = String(take!(io));

julia> println(s)
100×100 Array{Float64,2}:
 0.150112  …  0.913
 0.14348      0.598862
 0.265236     0.378648
 ⋮         ⋱
 0.599803     0.778466
 0.79655      0.725736

julia> io = IOBuffer();

julia> show(IOContext(io, :limit => true, :displaysize => (20, 40)), "text/plain", x);

julia> s = String(take!(io));

julia> println(s)
100×100 Array{Float64,2}:
 0.150112   0.998585  …  0.913
 0.14348    0.754191     0.598862
 0.265236   0.364718     0.378648
 0.746999   0.436714     0.594933
 0.247191   0.340162     0.126489
 0.92214    0.518781  …  0.530581
 0.483844   0.146089     0.14216
 0.421205   0.401629     0.381202
 ⋮                    ⋱
 0.0944732  0.990715     0.132398
 0.711658   0.958458     0.0849586
 0.378591   0.518736  …  0.688399
 0.77595    0.319994     0.667458
 0.427935   0.375477     0.656718
 0.599803   0.779445     0.778466
 0.79655    0.939409     0.725736

这里最关键的两件事是:

  • 使用show并指定要使用的MIME(我想您需要的是repl中给出的“text/plain”;一般来说,例如在Jupyter Notebook中,HTML和LaTeX在内部用于某些类型,例如,这就是我们在dataframes.jl中用于显示dataframe对象的方法)
  • 您应该设置:displaysize通常也是,通常showstdout获取displaysize,但是如果您有一个自定义的IO,那么它不知道您可能要显示多少行和多少列(当然,如果您喜欢,您可以坚持默认值:))
 类似资料:
  • 问题内容: 此线程讨论如何在Python中以字符串形式获取函数名称:如何在Python中以字符串 形式获取函数名称? 如何对变量执行相同操作?与函数相反,Python变量没有属性。 换句话说,如果我有一个变量,例如: 我正在寻找一个功能/属性,例如: 返回字符串 更新: 由于人们在问我为什么要这样做,这里有一个例子。我想从此列表在Pandas中创建一个DataFrame,其中列名称 由实际字典的名

  • 问题内容: 因此,我试图在Swift中将“实际变量名称”获取为String,但是还没有找到一种方法…或者也许我正以一个不好的角度看待这个问题和解决方案。 所以这基本上是我想要做的: 不幸的是,我无法在苹果文档中找到任何与之接近的东西,但这是: 但是,这给出了变量本身或变量类型的信息,在这种情况下为字符串,我想要变量的实际名称。 问题答案: 根据更新,它在Swift 3中通过

  • 我用了这段代码并运行,但没有输出出来不知道为什么? 但如果正在使用s=“”;则也没有输出。 但是当我使用s=“”;那么输出就来了,为什么会这样呢?

  • 常见的变量输出有如下情况: 1.在控制器中按如下方式赋值 $this->assign('hello','Hello ThinkCMF!'); return $this->fetch(); 在模板中: <div>{$hello}</div> 2.在控制器中赋值数组变量 $data = ['hello'=>'Hello ThinkCMF!','username'=>'老猫']; $this->as

  • 请参考:http://www.kancloud.cn/manual/thinkphp/1794