цикл в Джулии - итерации по всему индексу - PullRequest
0 голосов
/ 01 октября 2018

У меня проблемы с тем, чтобы Джулия прошла через все числа в матрице:

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 голосов
/ 03 октября 2018

В качестве альтернативы eachindex вы можете перебирать диапазон, в этом случае диапазон индексов, как в MatLab.

for i = 1:length(A)
    if A[i] < 0
        A[i] = 3
    end
end
0 голосов
/ 01 октября 2018

Попробуйте 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.

...