줄리아의 배열은 목록의 목록 또는 포인터의 배열이 아닙니다. 그것들은 하나의 컨테이너이며, 요소들은 직사각형 형태로 배열되어 있습니다. 따라서 m[j][i]
과 같이 반복되는 색인 생성 호출을 사용하여 연속 측정 기준에 액세스하지 않고 대신 여러 색인과 함께 하나의 색인 호출을 사용합니다 (m[i, j]
).
파일에서 마지막으로 0
을 제거하면 기본 제공 readdlm
을 사용하여 해당 파일을 행렬에로드 할 수 있습니다. 나는 그것이 좀 더 쉽게 여기에 수행 할 수 있도록 내 클립 보드에 그 처음 여섯 개 행을 복사 한 : 줄리아의 배열이 작동하는 방법을 가르치는 매우 도움이되지이다
julia> str = clipboard()
"58 129 10\n58 129 7\n25 56 10\n24 125 25\n24 125 15\n13 41 10"
julia> readdlm(IOBuffer(str), Int) # or readdlm("path/to/trimmed/file", Int)
6×3 Array{Int64,2}:
58 129 10
58 129 7
25 56 10
24 125 25
24 125 15
13 41 10
을하지만. m = Array{Int64}(6,3)
과 같은 배열을 구성하면 6 개의 행과 3 개의 열로 배열 된 18 개의 요소로 초기화되지 않은 행렬이 만들어집니다. 이 사람에서의 10 자리의 행 번호와 열 번호를 가지고 배열의 값을 설정 한
julia> m .= [10,20,30,40,50,60] .+ [1 2 3]
6×3 Array{Int64,2}:
11 12 13
21 22 23
31 32 33
41 42 43
51 52 53
61 62 63
: 그것은 우리가 분별있는 패턴을 입력하면 사물이 작동하는 방법을 보려면 조금 더 쉽다 장소. m[r,c]
에 액세스하면 행 r
및 c
에있는 m
의 값이 반환됩니다.
julia> m[2,3] # second row, third column
23
이제 r
및 c
정수가 될 필요가 없습니다 - 그들은 또한 여러 행이나 열을 선택하는 정수의 벡터가 될 수 있습니다 물론
julia> m[[2,3,4],[1,2]] # Selects rows 2, 3, and 4 across columns 1 and 2
3×2 Array{Int64,2}:
21 22
31 32
41 42
이 2:4
같은 범위
그냥 자신을 벡터이다를 따라서이 예제를
m[2:4, 1:2]
으로보다 쉽고 효율적으로 작성할 수 있습니다.
julia> m[1, :] # the first row of all columns
3-element Array{Int64,1}:
11
12
13
julia> m[:, 1] # all rows of the first column
6-element Array{Int64,1}:
11
21
31
41
51
61
마지막으로, 줄리아의 Array
이 열 전공 및 메모리에 연속적으로 배치 참고 : 자체로 :
는에 차원이 인덱스 내의 모든 인덱스의 벡터를위한 속기이다. 즉, m[2]
과 같은 하나의 색인 만 사용하면 첫 번째 열을 걸어 내려갑니다. 특별한 확장으로서, 우리는 일반적으로 "선형 인덱싱"이라고 불리는 것을 지원합니다. 여기서 단일 인덱스가 더 높은 차원으로 확장되도록 허용합니다. 그래서 m[7]
두 번째 열의 첫 번째 행으로 약 포장, 7 연속 요소에 액세스 : 당신은 좀 더 구체적으로 필요 해요
julia> m[5],m[6],m[7],m[8]
(51, 61, 12, 22)
. 너 뭐하려고? 너는 무엇을 기대하고 있니? 기대와 다른 점은 무엇입니까? –
[매뉴얼] (https://docs.julialang.org/en/stable/manual/arrays/)을 이해하는 데 어려움이 있습니까? 그것의 특정 부분? –
배열은 1- 색인입니다. 아마도 당신이 놓친 퍼즐 조각일까요? 좀 더 여유롭게 소개합니다 (https://en.wikibooks.org/wiki/Introducing_Julia/Arrays_and_tuples). – daycaster