Скажем, я запускаю скрипт 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))
Заранее спасибо.
@Shayan Я бы хотел отобразить все шесть строк из первого примера. Я отредактировал свой второй пример, чтобы сделать его более понятным. Обычно я хочу, чтобы это было похоже на MATLAB, где все, что я не подавляю с помощью ";" отображается в терминале.
Если у вас есть терминал для Julia REPL с буфером обратной прокрутки, и вы можете увеличить его в настройках терминала, вы можете вставить код в терминал Julia REPL, а затем прокрутить назад, чтобы просмотреть каждую строку.
Один из способов справиться с этим — написать собственный макрос:
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
Я бы хотел, чтобы все эти шесть строк..." Вы имели в виду последние три строки?