Main Content

이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

ndgrid

N차원 공간의 사각 그리드

설명

[X1,X2,...,Xn] = ndgrid(x1,x2,...,xn)은 그리드 벡터 x1,x2,...,xn을 복제하여 n차원의 전체 그리드를 생성합니다.

예제

[X1,X2,...,Xn] = ndgrid(xg)는 단일 그리드 벡터 xg를 지정하여 모든 차원에 사용합니다. 지정하는 출력 인수 개수에 따라 출력의 차원 수 n이 결정됩니다.

예제

모두 축소

벡터 [1 3 5 7 9 11 13 15 17 19]와 벡터 [2 4 6 8 10 12]에서 2D 그리드를 만듭니다.

[X,Y] = ndgrid(1:2:19,2:2:12)
X = 10×6

     1     1     1     1     1     1
     3     3     3     3     3     3
     5     5     5     5     5     5
     7     7     7     7     7     7
     9     9     9     9     9     9
    11    11    11    11    11    11
    13    13    13    13    13    13
    15    15    15    15    15    15
    17    17    17    17    17    17
    19    19    19    19    19    19

Y = 10×6

     2     4     6     8    10    12
     2     4     6     8    10    12
     2     4     6     8    10    12
     2     4     6     8    10    12
     2     4     6     8    10    12
     2     4     6     8    10    12
     2     4     6     8    10    12
     2     4     6     8    10    12
     2     4     6     8    10    12
     2     4     6     8    10    12

사각 그리드를 만들고 그리드에서 함수 값을 계산합니다. 대입된 값 사이를 보간하여 그리드를 미세 조정합니다.

x의 범위가 [-6,6]이고 y의 범위가 [-3,3](x,y)에 대한 성긴 그리드를 생성합니다.

[X,Y] = ndgrid(-6:0.5:6,-3:0.5:3);

그리드에 정의된 위치에서 함수 값을 구합니다. 그런 다음, 곡면 플롯을 사용하여 함수를 시각화합니다. 또는 R2016b부터 이 작업에 묵시적 확장을 사용할 수 있습니다.

f = sin(X.^2) .* cos(Y.^2);
surf(Y,X,f)

더 미세 조정된 그리드 (Xq,Yq)의 점 사이를 보간합니다. 그런 다음, 곡면 플롯을 사용하여 보간된 값을 시각화합니다.

[Xq,Yq] = ndgrid(-6:0.125:6,-3:0.125:3);
F = interpn(X,Y,f,Xq,Yq,"spline");
surf(Yq,Xq,F)

입력 인수

모두 축소

그리드 벡터로, 각 차원에 대한 그리드 좌표를 포함하는 벡터로 지정됩니다. 그리드 벡터는 묵시적으로 그리드를 정의합니다. 예를 들어, 2차원의 경우는 다음과 같습니다.

Grid vectors implicitly define a full grid

데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
복소수 지원 여부:

모든 차원에 대한 그리드 벡터로, 그리드 좌표를 포함하는 벡터로 지정됩니다. ndgrid는 각 차원에 대해 xg를 그리드 벡터로 사용합니다.

데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
복소수 지원 여부:

출력 인수

모두 축소

전체 그리드 표현으로, 개별 배열로 반환됩니다. 각 출력 배열 Xi의 경우, i번째 차원은 그리드 벡터 xi의 복사본을 포함합니다.

세부 정보

모두 축소

meshgrid 형식과 ndgrid 형식 간의 변환

meshgridndgrid는 서로 다른 출력 형식을 사용하여 그리드를 만듭니다. 이들 함수 중 하나를 사용하여 만든 그리드의 처음 두 차원은 다른 하나의 형식과 비교했을 때 맞바뀌어 있습니다. 일부 MATLAB® 함수는 meshgrid 형식의 그리드를 사용하고 일부 함수는 ndgrid 형식을 사용하므로 그리드를 두 가지 형식 간에 자주 변환하게 됩니다.

이들 그리드 형식은 pagetranspose(R2020b 이상) 또는 permute를 사용하여 그리드 배열의 처음 두 차원을 맞바꿈으로써 변환할 수 있습니다. 예를 들어, meshgrid를 사용하여 3차원 그리드를 만듭니다.

[X,Y,Z] = meshgrid(1:4,1:3,1:2);

각 그리드 배열의 처음 두 차원을 전치하여 그리드를 ndgrid 형식으로 변환하고, 이 결과를 ndgrid의 출력값과 비교합니다.

Xt = pagetranspose(X);
Yt = pagetranspose(Y);
Zt = pagetranspose(Z);
[Xn,Yn,Zn] = ndgrid(1:4,1:3,1:2);
isequal(Xt,Xn) & isequal(Yt,Yn) & isequal(Zt,Zn)
ans =

  logical

   1

pagetranspose를 사용하는 것은 나머지 차원은 그대로 두고 처음 두 개 차원을 치환하는 것과 동일합니다. permute(X,[2 1 3:ndims(X)])를 사용하여 이 작업을 수행할 수도 있습니다.

확장 기능

C/C++ 코드 생성
MATLAB® Coder™를 사용하여 C 코드나 C++ 코드를 생성할 수 있습니다.

버전 내역

R2006a 이전에 개발됨