에서 루프 하나의 루프에 대한 중첩 된 두 가지를 결합 나는 루프 두하고 난 하나 개의 중첩 루프로를 결합하려는 :줄리아
내 루프는 다음과 같이이다 : 나는에 노력
for i=1:m
for j=1:n
.....
end
end
그들을 결합 :
for ii = 1:n*m
ai = ii%n
yi = ii % m
if(ai == 0)
ai=6
end
if(yi == 0)
yi=5
end
println("ai=$ai , yi=$yi")
end
을 나는이 결과를 가지고 있도록 :
ai=1 , yi=1
ai=2 , yi=2
ai=3 , yi=3
ai=4 , yi=4
ai=5 , yi=5
ai=6 , yi=1
ai=1 , yi=2
ai=2 , yi=3
ai=3 , yi=4
ai=4 , yi=5
ai=5 , yi=1
ai=6 , yi=2
ai=1 , yi=3
ai=2 , yi=4
ai=3 , yi=5
ai=4 , yi=1
ai=5 , yi=2
ai=6 , yi=3
ai=1 , yi=4
ai=2 , yi=5
ai=3 , yi=1
ai=4 , yi=2
ai=5 , yi=3
ai=6 , yi=4
ai=1 , yi=5
ai=2 , yi=1
ai=3 , yi=2
ai=4 , yi=3
ai=5 , yi=4
ai=6 , yi=5
을 0
는하지만이 같은 몇 가지 결과를 얻으려면 :
ai=1 , yi=1
ai=1 , yi=2
ai=1 , yi=3
ai=1 , yi=4
ai=1 , yi=5
ai=2 , yi=1
ai=2 , yi=2
ai=2 , yi=3
ai=2 , yi=4
ai=2 , yi=5
ai=3 , yi=1
ai=3 , yi=2
ai=3 , yi=3
ai=3 , yi=4
ai=3 , yi=5
ai=4 , yi=1
ai=4 , yi=2
ai=4 , yi=3
ai=4 , yi=4
ai=4 , yi=5
ai=5 , yi=1
ai=5 , yi=2
ai=5 , yi=3
ai=5 , yi=4
ai=5 , yi=5
ai=6 , yi=1
ai=6 , yi=2
ai=6 , yi=3
ai=6 , yi=4
ai=6 , yi=5
내가 몇 가지 중첩 된 결과를 얻기 위해 코드를 변경하는 방법을 모르겠어요. 두 개의 for 루프를 결합하여 하나의 for 루프에 연결할 수 있으므로 두 개의 루프가 실행중인 것과 동일하게 실행됩니다.
그런데 왜? 선형 인덱스를 데카르트 첨자로 변환하는 것은 다른 방법보다 비용이 많이 든다 ('div'는'*'&'+'보다 느리다). [여기] (https://julialang.org/blog/2016/02/iteration)는 Julia의'CartesianIndex'를 사용하여 반복 작업을 수행하는 방법을 배우는 훌륭한 글입니다. – Gnimuc