cmd - 在 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"))
但它不起作用....
解决方案
您可以使用@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 手册中的运行外部程序部分)。
推荐阅读
- java - 当我们总是从 compare 或 compareTo 方法返回相同的值时,Collections.sort 如何工作
- docker - 如何在 docker-compose 中的服务之间共享用户?
- javascript - 如何模拟在同一函数中进行的多个 fetch 调用
- javascript - forEach 没有定义——为什么?
- android - 如何制作不包括 FAB 的半透明视图?
- java - JProgressBar 不会在 actionPerformed 内更新 - Java Swing
- python - 将嵌套的 json 转换为 csv,其中每一行包含最内层的值和所有父值
- java - 在 ActionListener 的 actionPerformed() 方法中暂停执行代码
- php - Facade\Ignition\Exceptions\ViewException 语法错误,文件意外结束
- javascript - 飞行气球动画