Sam*_*rca 2 arrays random julia
如何使用 Julia 语言将随机数(例如从 1 到 100)添加到数组中?此外,数组必须具有已定义的长度(例如 30 个数字)。
如果你的初始向量是v,你可以这样做:
v .+= rand(1:100,length(v))
Run Code Online (Sandbox Code Playgroud)
rand(1:100,length(v))v将生成一个由 1 到 100 之间的整数组成的随机向量,其长度与的 1 (length(v)部分)相同,您可以阅读rand()文档以获取更多详细信息。.+=是执行“就地”向量加法的 Julia 语法。关于性能,这是一个需要了解的重要语法,请参阅“点调用”语法更新一个更有效的方法,是:
map!(vi->vi+rand(1:100),v,v)
Run Code Online (Sandbox Code Playgroud)
注意:该方法更有效,因为它避免了临时向量的创建rand(1:100,length(v))。
如果您想用随机整数填充(而不是添加)向量,请更新替代方案,这是 @DNS 的一个(请参阅评论):
using Random
v = Vector{Int}(undef,30)
rand!(v,1:100)
Run Code Online (Sandbox Code Playgroud)
笔记:
Vector{Int}(undef,30)是 Julia 创建包含 30 个未初始化整数的向量的方法。rand!()函数用随机整数填充该向量。它在内部使用 for 循环。。
rand!(A::AbstractArray{T}, X) where {T} = rand!(default_rng(), A, X)
# ...
function rand!(rng::AbstractRNG, A::AbstractArray{T}, sp::Sampler) where T
for i in eachindex(A)
@inbounds A[i] = rand(rng, sp)
end
A
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2217 次 |
| 最近记录: |