首页 > 解决方案 > 在 cmd 中使用 Julia 对象

问题描述

我目前正在使用 Julia 进行编码,并且在某些时候,我必须在命令提示符处运行一个 .exe 程序。让我们将该程序命名为“x.exe”。我决定在我的代码中添加以下行,以便 Julia 在代码中执行程序:

run(pipeline('x.exe input.txt 5 500',stdout="output.txt"))

代码完美运行,但我必须手动插入值“5”和“500”,它们分别是 input.txt 文件中的行数和 input.txt 文件中每行的项目数。它们也是存储在 Julia 中的 Array 的行数和列数。

代码有没有办法直接读取这些数字?我试过了

writedlm("size.txt", transpose([size(Array)[1],size(Array)[2]])," ")

接着

run(pipeline('x.exe input.txt type size.txt',stdout="output.txt"))

但它不起作用....

标签: cmdjulia

解决方案


您可以使用@sprintf,例如如下:

julia> using Printf

julia> x = [[1,2,3], [4,5,6]]
2-element Array{Array{Int64,1},1}:
 [1, 2, 3]
 [4, 5, 6]

julia> a = @sprintf("%d", size(x)[1][1])
"2"

julia> b = @sprintf("%d", size(x[1])[1][1])
"3"

julia> run(pipeline(`x.exe input.txt $a $b`,stdout="output.txt"))

如您所见,Julia 使用与 shell 相同的方法将变量插入命令中(请参阅Julia 手册中的运行外部程序部分)。


推荐阅读