将Julia中大小为1*N或N*1的矩阵{T}转换为向量{T}的最有效方法是什么?
例如,说我有
a = [1,3,5]
b = a'
Run Code Online (Sandbox Code Playgroud)
两个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]
Run Code Online (Sandbox Code Playgroud)
Die*_*Zea 30
你可以使用这个vec()功能.它比列表理解更快,并且随着元素的数量更好地扩展;)对于1000x1的矩阵:
julia> const a = reshape([1:1000],1000,1);
julia> typeof(a)
Array{Int64,2}
julia> vec_a = [x::Int for x in a];
julia> typeof(vec_a)
Array{Int64,1}
julia> vec_aII = vec(a);
julia> typeof(vec_aII)
Array{Int64,1}
Run Code Online (Sandbox Code Playgroud)
6.41e-6秒#list comprehension
2.92e-7秒#vec()
小智 5
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)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8577 次 |
| 最近记录: |