Julia 创建要循环的整数索引的最佳/最有效的方法是什么?

Julia 创建要循环的整数索引的最佳/最有效的方法是什么?,julia,Julia,我有一组数组M[I],Z[I]和C[I],其值来自I:N 我想提取这些矩阵的标记,给定特定的要求,例如,如果M[I]为0,或者如果Z[I]为1 然后我想在for循环中使用这些标记: for i in indicies func(Z[i]) end 其中,标记是先前提取的标记向量。 应该注意的是,这些指数预计不会是连续的,即它们可能类似于: indicies = [4,6,8,11,17,23] 实现这一点的最佳方法是什么?这听起来像是一个问题,但我认为您正在寻找findall函数。也许下面的

我有一组数组
M[I]
Z[I]
C[I]
,其值来自I:N

我想提取这些矩阵的标记,给定特定的要求,例如,如果M[I]为0,或者如果Z[I]为1

然后我想在for循环中使用这些标记:

for i in indicies
func(Z[i])
end
其中,
标记
是先前提取的标记向量。 应该注意的是,这些指数预计不会是连续的,即它们可能类似于:

indicies = [4,6,8,11,17,23]
实现这一点的最佳方法是什么?

这听起来像是一个问题,但我认为您正在寻找
findall
函数。也许下面的MWE有帮助

M = rand(Bool, 10)
Z = rand(Bool, 10)
indices = findall((M .== 0) .| (Z .== 1)) # indices where M is 0 or Z is 1
func(x) = println((x + 1)^2)              # a random function printing stuff
for i in indices
    func(Z[i])
end

这些条件是否应同时满足?换句话说,如果M[i]为0或Z[i]为1,或者索引对于每个数组都是唯一的,则应将
i
添加到
索引中
M[i]
将有一个索引
Mindex
,该索引不同于
Zindex
Cindex