Matlab의 수학 연산에서 오는 인덱스가있는 n-D 행렬의 요소에 어떻게 액세스합니까?인덱스가 수학 연산에서 오는 n-D 행렬 요소에 액세스하는 방법
예를 들어 A라는 4D 매트릭스가 있습니다.
(3,4,5,6) - (2,3,4,5)의 결과 인 요소 1,1,1,1에 액세스하려고합니다.
내가 배열 모든 사이즈에 적합 D 될 수 있음과 뺄셈의 배열이 항상 D 요소 길이 될 것이라고 가정이 작업을 수행 할 수있는 방법이 있나요?
Matlab의 수학 연산에서 오는 인덱스가있는 n-D 행렬의 요소에 어떻게 액세스합니까?인덱스가 수학 연산에서 오는 n-D 행렬 요소에 액세스하는 방법
예를 들어 A라는 4D 매트릭스가 있습니다.
(3,4,5,6) - (2,3,4,5)의 결과 인 요소 1,1,1,1에 액세스하려고합니다.
내가 배열 모든 사이즈에 적합 D 될 수 있음과 뺄셈의 배열이 항상 D 요소 길이 될 것이라고 가정이 작업을 수행 할 수있는 방법이 있나요?
다른 접근법은 쉼표로 구분으로, 세포 배열로 변환하는 것이다
A = rand(3,4,5,6); % example A
t = [2 1 3 4]; % example index
u = num2cell(t);
result = A(u{:});
가능한 한 가지 방법은 MATLAB이 행 - 열 유형 인덱싱뿐만 아니라 모든 n 차원 배열에 대해 선형 인덱싱을 사용할 수 있다는 것입니다. 그런 다음 작업 결과의 선형 인덱스를 계산하면됩니다. ,
이 작업을 수행하려면 더 우아한 방법이있을 수 있지만 x
이 작업의 결과를 유지하는 배열 인 경우, 그 다음은 여기에 도움이 될 것 같은
element = A(sum((x-1).*(size(A).^[0:length(size(A))-1]))+1);
sub2ind
기능을 느낀다 작동 그러나 보이지 않는 것 같습니다.
좋은 방법! 그것은 제가 게시하려고했던 답변의 일부였습니다 :-) –