如何在Julia中依次构造矩阵?

时间:2016-02-01 08:55:21

标签: multidimensional-array julia

我需要通过追加行来构建Julia中的矩阵。这个想法是这样的:

mat = []     # initialize empty mat
for i = 1:5
    x, y = f(i), g(i)    # here f and g are previously defined functions
    mat = [mat; [x y]]
end

这不起作用,我收到错误:

  

错误:DimensionMismatch(“维度2不匹配(预期2得1)”

在我尝试附加到mat的行中。我是朱莉娅的新手。我怎样才能完成我想要的东西?

1 个答案:

答案 0 :(得分:4)

初始mat = []创建一个1-dim数组。正确的初始化方法是mat = reshape([],0,2)。也许建议输入数组。例如,mat = Array{Float64}(0,2)

以这种方式连接行的成本很高,因为Julia使用的内存中列的第一列排序。考虑定义完整数组并在循环中分配元素。可能是mat = Array{Float64}(5,2)

此外,评论者建议Matrix(0,2)这是另一种初始化0x2矩阵的方法。