我有以下矩阵A = [1.00 2.00; 3.00 4.00]
,我需要将它转换为Vector的向量,如下所示:
A1 = [1.00; 3.00]
A2 = [2.00; 4.00]
有什么想法吗?
答案 0 :(得分:6)
<强> TL;博士强>
这可以通过列表理解非常优雅地创建:
A = [A[:,i] for i in 1:size(A,2)]
<小时/> 说明:
这实际上将A
从将被编入索引为A[1,2]
的内容转换为将被编入索引为A[2][1]
的内容,这就是您所要求的内容。
在这里,我直接回到A
,在我看来你的想法是什么。但是,只有在代码明确无误时才这样做! 在代码中的不同点上使用同名变量代表不同的东西通常不是一个好主意。
注意:如果索引中的行/列顺序的撤消不是您所考虑的顺序,并且您更喜欢{要将{1}}编入索引为A[1,2]
,然后执行列表理解&#39;每行&#39;}相反,即
A[1][2]
答案 1 :(得分:1)
简单地使用矩阵切片,而不是A1使用会更好
A[:,1]
而不是A2使用
A[:,2]
如果你真的需要他们分开&#34;分开&#34;反对你可以尝试创建一个像这样的单元格数组:
myfirstcell = cell(size(A,2))
for i in 1:size(A,2)
myfirstcell[i] = A[:,i]
end
请参阅http://docs.julialang.org/en/release-0.4/stdlib/arrays/#Base.cell
(单元格数组允许将几种不同类型的对象存储在同一个数组中)