在朱莉娅,我可以使用
创建2D数组[1 2 3 4 ; 5 6 7 8]
2×4 Array{Int64,2}:
1 2 3 4
5 6 7 8
问题是,我需要将作为参数提供的2D数组解析为脚本 - 即作为String。
例如
$ julia script.jl "[1 2 3 4 ; 5 6 7 8]"
并在脚本中写道:
c = parse.(ARGS[1])
和c应为2×4阵列。
我对输入字符串的格式很灵活。
用例是,我想从Java中调用在Julia + JuMP中实现的优化问题。
答案 0 :(得分:4)
查看readdlm
功能:
retrofit = new Retrofit.Builder()
.baseUrl(BASE_URL)
.addConverterFactory(GsonConverterFactory.create(gson))
.build();
运行:
println(ARGS)
a = readdlm(IOBuffer(ARGS[1]),',',';')
display(a)
您可以在脚本中选择类型:
$ julia argscript.jl "1,2,3,4;5,6,7,8"
String["1,2,3,4;5,6,7,8"]
2×4 Array{Float64,2}:
1.0 2.0 3.0 4.0
5.0 6.0 7.0 8.0
您甚至可以通过传递两个参数来强制执行矩阵维度:
a = readdlm(IOBuffer(ARGS[1]),',',Int,';')
运行:
n = parse(Int,ARGS[1])
m = parse(Int,ARGS[2])
a = readdlm(IOBuffer(ARGS[3]),',',Int,';',dims=(n,m))