我需要通过追加行来构建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
的行中。我是朱莉娅的新手。我怎样才能完成我想要的东西?
答案 0 :(得分:4)
初始mat = []
创建一个1-dim数组。正确的初始化方法是mat = reshape([],0,2)
。也许建议输入数组。例如,mat = Array{Float64}(0,2)
。
以这种方式连接行的成本很高,因为Julia使用的内存中列的第一列排序。考虑定义完整数组并在循环中分配元素。可能是mat = Array{Float64}(5,2)
。
此外,评论者建议Matrix(0,2)
这是另一种初始化0x2矩阵的方法。