나는 x = 500
, y = 500
, z = 500*500
인 벡터가 3 개 있습니다. 여기 z
은 -3
에서 3
까지의 높이입니다. surf(x,y,z)
을 사용하여 이것을 표시했지만, 제 문제는 여기 같은 크기의 3D 오브젝트로 변환하고 싶습니다. x=500
, y=500
, z=500
입니다. 전문가, 어떻게 변환 할 수 있습니까?matlab을 사용하여 서핑을 3D 개체로 변환하는 방법
0
A
답변
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
편집 : 아래 이미지 참조하십시오. 이 이미지
3, 별개x
-coordinates 3 별개
y
-coordinates하지만 9
z
-coordinates 구별이있다. 따라서 3D 객체는 점을 포함하며 일반적으로 x3 좌표로 표시됩니다.
가 난 그냥하지 않습니다 .... 당신이 3 × 3 좌표로 어떻게 든이를 줄이거 나 3 × 3 × 3 = 27 개 좌표로 어떻게 든 그것을 표현하는 하나 싶어 이해 방법 당신에게 그렇게하고 싶다.
그래서, 당신이 원하는 것을 명확하고 간단한 그림을 제공, 그리고 훨씬 더 당신을 도울 수 있습니다하십시오 :
나는 이것을 시도했지만 나는 XYZ의 크기가 [250000입니다 받고있다 1] ... 사실 나는 [500 500 500]이 필요하다. 어떻게 내가 가질까 ? – Damo
@Dams : 마지막 단계를 건너 뜁니다 ... –
마지막 단계와 x 크기 500 * 500을 건너 뛰고 y 크기가 500 * 500이고 z 크기가 500 * 500이지만 x = 500, y = 500 및 z가 필요합니다. = 500 그래서 크기가 [500 500 500] 인 3D 오브젝트를 얻을 수 있습니다. – Damo