2013-07-26 3 views
0

누군가가 3D 이미지에 대한 코드를 작성하도록 도와 줄 수 있는지 궁금합니다. 현재 라이트에서 작업 중입니다.3D 매트릭스에서 임계 값보다 큰 "외부"요소를 찾으십시오.

A (:, :, 1) =

0 7 4 
0 32 9 
4 3 1 

A가 (:, :, 2) =

6 0 4 
3 4 6 
2 3 11 

나는 간단한 3D 매트릭스있어 (:, :, 3) =

12 2 4 
10 20 6 
14 3 2 

이 값들을 찾으려면 b 임계 값보다 큽니다 (예 : 7보다 큼). 그러나 나는 단지 외장 요소, 즉 "중앙"요소가 아닌 것을 원합니다 (매트릭스의 첫 번째 레이어에있는 32는 최대로 표시되어서는 안됩니다).

(더 큰 매트릭스로 작업하고 있습니다. 하지만 일단 위의 작은 3D 매트릭스에 대해이 작업을 수행 할 수있게되면 더 큰 3D 매트릭스에 대해서는이 작업을 수행하는 것이 어렵지 않을 것입니다.)

는 당신에게 당신이 그 행렬에서 벡터를 추출 할 수 추측하고있어 많은

답변

1

이 시도 : 나는 조금 편집했습니다

A = randn(4,4,4); % data. Arbitrary size 
th = 1; % threshold 

ind = find(A>th); 
[x y z] = ind2sub(size(A), ind); 
ext = find((x==1)|(x==size(A,1))|(y==1)|(y==size(A,2))|(z==1)|(z==size(A,3))); 

ind_solution = ind(ext); % linear index of desired values 
solution = A(ind_solution) % desired values 
+0

. 너 지금 해볼래? 나는 "외부"가 부목 중 하나가 1 또는 최대 중 하나라는 것을 해석한다. –

+0

매트릭스의 마지막 레이어 (일부 내부 요소가있는 경우)를 제외하고는 잘 작동합니다. 예, "외관"은 첫 번째와 마지막 열과 행의 요소를 의미합니다. – karl71

+0

나에게 "외관"은 첫 번째 레이어와 마지막 레이어의 모든 요소를 ​​포함합니다. 3D 입방체를 입방체로 생각하고 있으며, "외관"이란 외부에서 바라 볼 수있는 여섯 개의 모든면을 의미합니다. 그것이 당신이 원하는 것이 아니라면, 더 명확하게 설명 할 수 있습니까? –

0

감사 ... 그래서 자신의 요소를 외부 벡터를 받고 저점을 반복의 문제이다.

link은 벡터 추출에 도움이 될 것이라고 생각합니다.

관련 문제