3 차원 배열이 있고 특정 값을 찾아 세 좌표를 가져올 수 있기를 바랍니다. 예를 들어MATLAB : 다차원 배열에서 값의 좌표 찾기
, 내가있는 경우 :
A = [2 4 6; 8 10 12]
A(:,:,2) = [5 7 9; 11 13 15]
내가 7
가 어디 있는지 찾으려면, 나는 i = 1
j = 2
k = 2
I 좌표를 좀하고 싶습니다 find(A == 7)
의 변형을 시도했지만 아직 어디에도 없습니다.
감사합니다.
3 차원 배열이 있고 특정 값을 찾아 세 좌표를 가져올 수 있기를 바랍니다. 예를 들어MATLAB : 다차원 배열에서 값의 좌표 찾기
, 내가있는 경우 :
A = [2 4 6; 8 10 12]
A(:,:,2) = [5 7 9; 11 13 15]
내가 7
가 어디 있는지 찾으려면, 나는 i = 1
j = 2
k = 2
I 좌표를 좀하고 싶습니다 find(A == 7)
의 변형을 시도했지만 아직 어디에도 없습니다.
감사합니다.
당신이 찾는 기능은 ind2sub
입니다 :
[i,j,k]=ind2sub(size(A), find(A==7))
i =
1
j =
2
k =
2
당신은 배열에 제로가 아닌 요소의 위치를 찾을 수 있습니다,하지만 산술의 조금 필요합니다. 문서에서 : 희소 행렬 작업시
[row,col] = find(X, ...)
은 행렬 (X)의 제로 엔트리의 행 및 열의 인덱스를 반환이 구문은 특히 유용하다. X가 N> 2 인 N 차원 배열 인 경우 col에는 열에 대한 선형 인덱스가 포함됩니다. 예를 들어 X (4,2,3)에 0이 아닌 요소가있는 5x7x3 배열 X의 경우 find는 행에 4 을, 열은 16을 반환합니다. 즉, (1 페이지 7 열) +
+ (3 페이지에 2 열) = 16 ( 2 페이지 7 열)이며, 행렬 M
일부 치수 a x b x c
다음 인덱스 (i,j,k)
이 있으면 값 x
은 다음과 같습니다.
[row,col] = find(A==x);
i = row;
j = mod(col,b);
k = ceil(col/b);
굉장한, 이것은 내가 찾고 있었던 것입니다. 감사! –