首页 > 解决方案 > 在 Julia 中创建一个表并将其保存到一个 csv 文件中

问题描述

如果一个循环产生了大量的输出,那么在控制台中打印出来就会很混乱。为了解决这个问题,我想将输出保存在表格中,然后将其打印到 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)

输出应如下所示:

运行___A1____B1____A2___B2

1_____1_____2_____3_____4

2____1_____2_____3_____4

但是,我在第四行出现错误:syntax: missing separator in array expression. 我确实理解我的语法似乎有问题,但是据我所知,这种方式是正确的。

标签: csvjulia

解决方案


当您创建output矩阵时,Julia 会自动将其专门化为Ints 的矩阵。您可以做的是明确告诉 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] 

推荐阅读