For loop Julia中的for循环-在整个索引上迭代

For loop Julia中的for循环-在整个索引上迭代,for-loop,indexing,julia,For Loop,Indexing,Julia,我很难让Julia检查矩阵中的所有数字: A = [1 -2 3; -4 -5 -6; 7 -8 9] 我想把所有的负数都变成正数3 我试过: for i=A[1:end] if i<0 A[i] = 3 i += 1 end return (A) end i=A[1:end]的 如果我尝试枚举: julia> A = [1 -2 3; -4 -5 -6; 7 -8 9] 3×3 Array{Int64,2}: 1 -2 3 -4 -5

我很难让Julia检查矩阵中的所有数字:

A = [1 -2 3; -4 -5 -6; 7 -8 9]
我想把所有的负数都变成正数3

我试过:

for i=A[1:end]
  if i<0
    A[i] = 3
    i += 1
  end
  return (A)
end
i=A[1:end]的


如果我尝试
枚举

julia> A = [1 -2 3; -4 -5 -6; 7 -8 9]
3×3 Array{Int64,2}:
  1  -2   3
 -4  -5  -6
  7  -8   9

julia> for (i,v) in enumerate(A)
       if v < 0
       A[i] = 3
       end
       end

julia> A
3×3 Array{Int64,2}:
 1  3  3
 3  3  3
 7  3  9

您可以在Julia REPL的交互式帮助中找到这些函数的详细信息。

作为
eachindex
的替代方法,您可以在一个范围内迭代,在本例中是索引范围,如在MatLab中

for i = 1:length(A)
    if A[i] < 0
        A[i] = 3
    end
end
i=1时的
:长度(A)
如果A[i]<0
A[i]=3
结束
结束

A[A.可能
replace!(x->xBTW,
A[A.
replace!
是一种非常好的函数式编程方法。我以为@hhillman231想学习如何正确使用Julia中的循环,因为这是问题标题所指的内容。@BogumiłKamiński使用
enumerate
eachindex
的双重答案,我觉得很有帮助。我不记得看到
eachindex以前。
for i = 1:length(A)
    if A[i] < 0
        A[i] = 3
    end
end