2014-03-14 3 views
0

나는 x = 500, y = 500, z = 500*500 인 벡터가 3 개 있습니다. 여기 z-3에서 3까지의 높이입니다. surf(x,y,z)을 사용하여 이것을 표시했지만, 제 문제는 여기 같은 크기의 3D 오브젝트로 변환하고 싶습니다. x=500, y=500, z=500입니다. 전문가, 어떻게 변환 할 수 있습니까?matlab을 사용하여 서핑을 3D 개체로 변환하는 방법

답변

1
help surf 가입일

:

SURF (X, Y, Z)과 SURF (X는, Y는 Z, C) 두 벡터 인수 처음 두 매트릭스 인수 교체와는, (X를 길이 있어야) = n이고 길이 (y) = m 여기서 [m, n] = 크기 (Z). 이 경우, 표면 패치의 정점 은 트리플 (x (j), y (i), Z (i, j))입니다. x는 Z 열에 해당하고 y는 행에 해당합니다. 따라서

:

[x,y] = meshgrid(x,y);  %// replicate vectors appropriately 
xyz = [x(:) y(:) z(:)]; %// make [X,Y,Z] triplets 

편집 : 아래 이미지 참조하십시오. 이 이미지

enter image description here

3, 별개 x -coordinates 3 별개 y -coordinates하지만 9 z -coordinates 구별이있다. 따라서 3D 객체는 점을 포함하며 일반적으로 x3 좌표로 표시됩니다.

가 난 그냥하지 않습니다 .... 당신이 3 × 3 좌표로 어떻게 든이를 줄이거 나 3 × 3 × 3 = 27 개 좌표로 어떻게 든 그것을 표현하는 하나 싶어 이해 방법 당신에게 그렇게하고 싶다.

그래서, 당신이 원하는 것을 명확하고 간단한 그림을 제공, 그리고 훨씬 더 당신을 도울 수 있습니다하십시오 :

+0

나는 이것을 시도했지만 나는 XYZ의 크기가 [250000입니다 받고있다 1] ... 사실 나는 [500 500 500]이 필요하다. 어떻게 내가 가질까 ? – Damo

+0

@Dams : 마지막 단계를 건너 뜁니다 ... –

+0

마지막 단계와 x 크기 500 * 500을 건너 뛰고 y 크기가 500 * 500이고 z 크기가 500 * 500이지만 x = 500, y = 500 및 z가 필요합니다. = 500 그래서 크기가 [500 500 500] 인 3D 오브젝트를 얻을 수 있습니다. – Damo