3 벡터의 데이터를 사용하여 표면 플롯을 수행 할 수 있어야합니다. 비슷한 정보를 찾았지만 내 데이터로는 아무런 방법도 작동하지 않습니다. 내 X와 Y 열은 균등하게 배열되어 있지만 증가하지는 않습니다. 나는 다른 방법을 시도했지만, 그들 중 누구도 내가 원하는 것을 나에게주는 것 같지 않습니다. 그것은 가까운 지점을 연결하는 간단한 표면입니다.3 벡터가있는 표면 플롯 Matlab
[X Y]=meshgrid(x,y);
Z=griddata(x,y,z, X,Y);
surf(X,Y,Z);
은 Z = 0에서 표면을 생성하고 더 많은 단지 표면보다 볼륨 음모처럼 보이게하기 때문에, 내가 원하는 것을 정확히되지 않습니다 : 나는 다음 시도했다. 또한 내 컴퓨터에서 매우 천천히 실행됩니다 (아마도 모든 격자 점을 생성하는 것으로부터). 많은 메모리를 필요로하지 않는 무언가를 얻을 수 있다면 이상적입니다 (내 벡터는 약 20k 값을가집니다). 그러나 이것은 꼭 필요한 것은 아닙니다.
*** 편집 : 나는 또한 scatteredInterpolant 방법은 here을 발견 사용했지만, 함수는 MATLAB에서 인식하지 않는 것 그리고이 오류 얻을 : 또한 여기의 이미지입니다
Undefined function 'scatteredInterpolant' for input arguments of type 'double'.
을 내 문제 :
우리는 표면 아래에서 볼 수 없으며 일부 z = 0 평면이 그것을 차단하고 있음을 알 수 있습니다.
나를 위해 필요한 것이 있다면 도움을 주시면 감사하겠습니다.
미리 감사드립니다.
** 편집 2 : 샘플 vectors을 추가했는데, 왼쪽에서 오른쪽으로 x, y 및 z 값을가집니다.
*** 편집 3 다음은 내가 얻은 삼각 측량의 이미지입니다. 당신이 볼 수 있듯이, 몇 가지 이유가 무엇인지는 무시되고 있습니다. 길고 이상한 파란 삼각형을 그리게됩니다. 마이크
가 도움이됩니까 :
두 번째 그림은 원하는 표면을 포함? 아니면'doc griddata'에 설명 된 다른'method'를 사용한다면 어떨까요? 그렇지 않으면 문제를 완전히 복제하기 위해 몇 가지 샘플 코드와 벡터를 게시하십시오. –
@DennisJaheruddin Z (~ Z) = NaN 할 때 [더 평평한 바닥] (http://imgur.com/qg8PMOm)을 볼 수 있지만 여전히 볼 수는 없으며 닫히고 볼륨을 형성합니다. 내 벡터는 아주 크고, 나는 그들을 연결하는 방법을 찾으려고 노력할 것이다. –
데이터에 플롯 된 낮은 값이 실제로 포함되어 있지 않습니까? x와 y 값이 0.8과 1.2 사이에있는 최소 z는 얼마입니까? 또한 다른 그리드 데이터 옵션을 사용하는 것을 잊지 마십시오. –