将Julia中大小为1*N或N*1的Matrix{T}转换为Vector{T}的最有效方法是什么?
例如,假设我有
a = [1,3,5]
b = a'
a
和b
都属于Array{Int,2}
类型(即Matrix{Int}
)。将a
和b
转换为Array{Int,1}
类型(即Vector{Int}
)最有效的方法是什么?
一种方法是:
a_vec = [x::Int for x in a]
b_vec = [x::Int for x in b]
发布于 2013-01-21 06:20:31
如果矩阵是1xN
或Nx1
,我倾向于使用squeeze
来完成此操作
squeeze(ones(3, 1))
squeeze(ones(1, 3))
不确定这是否比使用vec
或reshape
更有效。
发布于 2015-03-17 00:50:35
vec()更快
const a = reshape([1:1000],1000,1);
@time vec(a);
elapsed time: 6.914e-6 seconds (184 bytes allocated)
@time squeeze(a,2);
elapsed time: 1.0336e-5 seconds (248 bytes allocated)
https://stackoverflow.com/questions/14421535
复制相似问题