如果循环创建大量输出,则在控制台中将其打印出来会造成混乱。为了解决此问题,我想将输出保存在一个表中,然后将其打印到一个csv文件中。
这是我尝试过的代码的简化版本:
n=2
output = Any[0 for i in 1:(1+n*2), j in 1:3] #table in which output should be saved
output[1,1]="run"
output[1, (1+i):(1+i+1) for i in 1:n] = ["A"i "B"i]
for run in 1:2
output[1, run+1] = run
output[2:width(output), run+1] = 1:(width(output)-1)
end
writecsv("C:/Users/user1/Desktop/output.csv",output)
输出应如下所示:
run ___ A1 ____ B1 ____ A2 ___ B2
1 _____ 1 _____ 2 _____ 3 _____ 4
2 _____ 1 _____ 2 _____ 3 _____ 4
但是,我在以下一行错误:syntax: missing separator in array expression
。我确实知道我的语法似乎有问题,但是据我所知,这样做是正确的。
答案 0 :(得分:1)
创建output
矩阵时,Julia会自动将其专门化为Int
s矩阵。您可以做的是明确告诉Julia创建一个元素类型为Any
为此,请替换
output = [0 for i in 1:(1+n*2), j in 1:3]
使用
output = Any[0 for i in 1:(1+n*2), j in 1:3]