Main Content

griddatan

N차원 산점 데이터 보간하기

설명

예제

vq = griddatan(x,v,xq)는 형식 v = f(x)의 초곡면을 값 v를 갖는 샘플 점 x에 피팅합니다. griddatan 함수는 xq로 지정된 쿼리 점에서 곡면을 보간하고 보간된 값 vq를 반환합니다. 곡면은 항상 xv로 정의된 데이터 점을 통과합니다.

예제

vq = griddatan(x,v,xq,method)vq를 계산하는 데 사용되는 보간 방법을 지정합니다. 옵션으로는 "linear" 또는 "nearest"가 있습니다.

vq = griddatan(x,v,xq,method,options)는 문자형 벡터로 구성된 셀형 배열 options를 지정합니다. 이 배열은 delaunayn을 통해 Qhull에 사용됩니다.

예제

모두 축소

4차원 산점 데이터 세트를 보간하고 보간된 데이터의 3차원 등가곡면을 시각화합니다.

샘플 점으로 구성된 산점 세트를 만듭니다.

rng default
X = 2*rand([5000 3])-1;
Y = sum(X.^2,2);

3차원 쿼리 점 세트로 사용할 x, y, z 그리드를 만들고 해당 점에서 산점 데이터를 보간합니다.

d = -0.8:0.05:0.8;
[y0,x0,z0] = ndgrid(d,d,d);
XI = [x0(:) y0(:) z0(:)];
YI = griddatan(X,Y,XI);

4차원 데이터 세트는 시각화하기 어렵기 때문에 0.8에서 isosurface를 사용하여 보간 결과를 시각화합니다.

YI = reshape(YI, size(x0));
p = patch(isosurface(x0,y0,z0,YI,0.8));
isonormals(x0,y0,z0,YI,p)
p.FaceColor = "blue";
p.EdgeColor = "none";
view(3)
axis equal
camlight
lighting phong

Figure contains an axes object. The axes object contains an object of type patch.

3차원 산점 데이터 세트에 최근접이웃 보간을 사용합니다.

3차원 샘플 데이터 세트를 만듭니다. 행렬 X에는 관측된 데이터의 xyz 위치가 들어 있고 v에는 관측된 데이터(임의로 생성됨)가 들어 있습니다. 이러한 데이터는 어떤 위치에서 해수의 산소 수치를 나타내는 데이터로 가정해 볼 수 있습니다.

rng default
X = [rand(100,1) rand(100,1) rand(100,1)];
v = rand(100,1);

최근접이웃 보간을 사용하여 일부 쿼리 점에서의 기본 함수 근삿값을 구합니다.

[xx,yy,zz] = meshgrid(0:0.05:1);
xq = [xx(:) yy(:) zz(:)];
vq = griddatan(X,v,xq,"nearest");

샘플 점 위치 위에 결과를 슬라이스로 플로팅합니다.

vq = reshape(vq,size(xx));
plot3(X(:,1),X(:,2),X(:,3),"r*")
hold on
slice(xx,yy,zz,vq,[0.3 0.6],0.5,0.5)
hold off

Figure contains an axes object. The axes object contains 5 objects of type line, surface. One or more of the lines displays its values using only markers

입력 인수

모두 축소

샘플 점 좌표로, 행렬로 지정됩니다. xn차원 공간에서의 m개 점을 나타내는 m×n 행렬로 지정합니다. 샘플 점은 고유해야 합니다.

데이터형: double

샘플 값으로, 벡터로 지정됩니다. vx에 지정된 샘플 점(행)마다 대응값을 하나씩 포함한 길이가 m인 벡터로 지정합니다.

v에 복소수가 있는 경우 griddatan은 실수부와 허수부를 각각 별도로 보간합니다.

데이터형: single | double
복소수 지원 여부:

쿼리 점으로, 행렬로 지정됩니다. xqn차원 공간에서의 p개 점을 나타내는 p×n 행렬로 지정합니다. xq는 일반적으로 ndgrid에 의해 생성된 균일한 그리드에서 만들어집니다.

데이터형: double

보간 방법으로, 다음 표에 있는 값 중 하나로 지정됩니다. 두 가지 방법은 모두 입력 데이터의 들로네 삼각분할(Delaunay Triangulation)을 기반으로 합니다.

옵션설명연속성
"linear"(디폴트 값)삼각분할 기반 선형 보간입니다.C0
"nearest"최근접이웃 보간입니다.불연속

method[]이면 griddatan은 디폴트 값인 "linear" 메서드를 사용합니다.

데이터형: char | string

Qhull 고유 옵션으로, 셀형 배열로 지정됩니다. 지원되는 옵션의 목록은 Qhull Quick Reference를 참조하십시오.

options[]이면 griddatan은 다음 디폴트 옵션을 사용합니다.

  • 2차원과 3차원 보간의 경우 {'Qt' 'Qbb' 'Qc'}.

  • 4차원 이상의 보간의 경우 {'Qt' 'Qbb' 'Qc' 'Qx'}.

options{''}이면 griddatan은 디폴트 옵션을 비롯하여 어떠한 옵션도 사용하지 않습니다.

데이터형: cell

출력 인수

모두 축소

보간된 값으로, 길이가 p인 벡터로 반환됩니다. vq의 보간된 값은 xq의 쿼리 점(행)에 대응합니다.

  • 차원 수에 맞춰 기본 삼각분할에 필요한 메모리가 기하급수적으로 증가하므로 6차원이 넘는 차원에서는 griddatan을 보간에 잘 사용하지 않습니다.

  • griddatan을 통한 산점 데이터 보간은 데이터의 들로네 삼각분할을 사용하기 때문에, x의 스케일링 문제에 민감할 수 있습니다. 이 경우 normalize를 사용하여 데이터를 다시 스케일링하고 결과를 개선할 수 있습니다. 자세한 내용은 크기가 서로 다른 데이터를 정규화하기 항목을 참조하십시오.

확장 기능

버전 내역

R2006a 이전에 개발됨

참고 항목

| |