【发布时间】:2016-07-11 13:19:15
【问题描述】:
我有 200 个向量;每个长度为10000。
我想填充一个矩阵,使每一行代表一个向量。
【问题讨论】:
我有 200 个向量;每个长度为10000。
我想填充一个矩阵,使每一行代表一个向量。
【问题讨论】:
如果您的向量已经存储在数组中,那么您可以在此处使用vcat( ):
A = [rand(10000)' for idx in 1:200]
B = vcat(A...)
【讨论】:
Julia 以列优先顺序存储矩阵,因此您将不得不稍微适应一下
如果你有 200 个长度为 100000 的向量,你应该首先创建一个空向量,a = [],这将是你的矩阵 然后你必须将第一个向量 vcat 到你的空向量,就像这样
v = your vectors, however they are defined
a = []
a = vcat(a, v[1])
然后你可以遍历向量 2:200 by
for i in 2:200
a = hcat(a,v[i])
end
最后转置一个
a = a'
或者,你可以这样做
a = zeros(200,10000)
for i in 1:length(v)
a[i,:] = v[i]
end
但我想这不会那么快,如果性能完全是一个问题,因为正如我所说,朱莉娅按列主要顺序存储,所以访问会更慢
编辑来自reschu的评论
a = zeros(10000,200)
for i in 1:length(v)
a[:,i] = v[i]
end
a = a'
【讨论】:
a 的大小。无论如何,您可以预先分配一个 10000x200 矩阵,遍历列,然后转置它。如果你想确定:计时。