a = [1 2 3 4 5]
Run Code Online (Sandbox Code Playgroud)
我想用 10 替换条目 4 和 5( > 3)。
我试过a > 3。没有成功。
如何在朱莉娅中做到这一点?
相关qn:Julia中的逻辑索引
Bog*_*ski 10
你可以做:
\njulia> a = [1 2 3 4 5]\n1\xc3\x975 Matrix{Int64}:\n 1 2 3 4 5\n\njulia> a[a .> 3] .= 10\n2-element view(::Vector{Int64}, [4, 5]) with eltype Int64:\n 10\n 10\n\njulia> a\n1\xc3\x975 Matrix{Int64}:\n 1 2 3 10 10\nRun Code Online (Sandbox Code Playgroud)\n或者
\njulia> a\n1\xc3\x975 Matrix{Int64}:\n 1 2 3 4 5\n\njulia> replace(x -> x > 3 ? 10 : x, a) # allocates a new array\n1\xc3\x975 Matrix{Int64}:\n 1 2 3 10 10\n\njulia> a # a is unchanged\n1\xc3\x975 Matrix{Int64}:\n 1 2 3 4 5\n\njulia> replace!(x -> x > 3 ? 10 : x, a) # updates the array in place\n1\xc3\x975 Matrix{Int64}:\n 1 2 3 10 10\n\njulia> a # a is updated in place\n1\xc3\x975 Matrix{Int64}:\n 1 2 3 10 10\nRun Code Online (Sandbox Code Playgroud)\n如果您需要在大型数组上多次执行此操作(例如,在多次调用的某个函数的热循环内),那么使用replace!将是一个更快的选择。