有没有办法在Julia中显示每一行代码,当它没有用“;“,喜欢MATLAB吗?

0aydgbwb  于 2022-11-30  发布在  Matlab
关注(0)|答案(1)|浏览(130)

假设我正在运行一个Julia脚本。我希望每一行代码都能像在MATLAB中一样显示在终端中。有没有什么方法可以做到这一点?对我来说,为我想在终端中看到的每个变量编写display(...)是很笨拙的,特别是当我想快速检查我的工作时。
例如,假设我有以下代码:

a = [1; 0; 0]
b = [0; 1; 0]
c = [0; 0; 1]
a * transpose(a)
b * transpose(b)
c * transpose(c)

我希望所有这六行都能自动显示在终端中,而不是必须写,说:

a = [1; 0; 0]
b = [0; 1; 0]
c = [0; 0; 1]
display(a)
display(b)
display(c)
display(a * transpose(a))
display(b * transpose(b))
display(c * transpose(c))

先谢谢你了。

aij0ehis

aij0ehis1#

处理这种情况的一种方法是编写自己的宏:

macro displayall(code)
    for i in eachindex(code.args)
        typeof(code.args[i]) == LineNumberNode && continue
        code.args[i] = quote
            display($(esc(code.args[i])));
        end
    end
    return code
end

现在您可以使用它,例如:

julia> @displayall begin
       a = [1; 0; 0]
       b = [0; 1; 0]
       c = [0; 0; 1]
       a * transpose(a)
       b * transpose(b)
       c * transpose(c)
       end
3-element Vector{Int64}:
 1
 0
 0
3-element Vector{Int64}:
 0
 1
 0
3-element Vector{Int64}:
 0
 0
 1
3×3 Matrix{Int64}:
 1  0  0
 0  0  0
 0  0  0
3×3 Matrix{Int64}:
 0  0  0
 0  1  0
 0  0  0
3×3 Matrix{Int64}:
 0  0  0
 0  0  0
 0  0  1

相关问题