Julia中的for循环-遍历整个索引

时间:2018-10-01 15:27:54

标签: 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 + = 1移到各个位置。但是仍然没有任何改变。

2 个答案:

答案 0 :(得分:2)

尝试enumerate

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

eachindex

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 in eachindex(A)
       if A[i] < 0
       A[i] = 3
       end
       end

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

您可以在Julia REPL的交互式帮助中找到有关这些功能的详细信息。

答案 1 :(得分:0)

作为eachindex的替代方法,您可以在一定范围内进行迭代,在这种情况下,可以像在MatLab中那样在范围内进行索引。

for i = 1:length(A)
    if A[i] < 0
        A[i] = 3
    end
end