循环遍历数组并检查其元素

时间:2021-06-28 04:53:23

标签: julia

我有一个数组“A”。我想对 A 的所有元素进行循环,检查是否有大于或等于 1 的元素。如果是,我想为同一元素中的新数组“B”分配一个“1” A的索引。

我将如何实施这个?

我有一个繁琐的想法:

for i in 1:end
for j in 1:end
if A[i,j] >= 1
B[i,j] = 1
else
B[i,j] = 0
end
end
end

但我更喜欢更简洁的内容。

2 个答案:

答案 0 :(得分:4)

只需使用广播:

B = A .≥ 1

答案 1 :(得分:2)

您当然可以像 Oscar 建议的那样使用广播(例如 B = A .>= 1),但是循环也没有任何问题,因为循环速度很快并且可以避免过度分配。不过你真的只需要一个循环,而且 if 语句有点多余,所以:

B = similar(A, Int64) # If B doesn't already exist, otherwise omit this line
@inbounds for i in eachindex(A)
    B[i] = A[i] >= 1
end

@inbounds 是可选的,但可以提高速度。