이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.
interp2
meshgrid 형식의 2차원 그리딩된 데이터 보간(Interpolation)
구문
설명
예제
디폴트 방법을 사용한 그리드 보간
peaks
함수를 성기게 샘플링합니다.
[X,Y] = meshgrid(-3:3); V = peaks(X,Y);
성긴 샘플링을 플로팅합니다.
figure
surf(X,Y,V)
title('Original Sampling');
0.25 간격으로 쿼리 그리드를 만듭니다.
[Xq,Yq] = meshgrid(-3:0.25:3);
쿼리 점에서 보간합니다.
Vq = interp2(X,Y,V,Xq,Yq);
결과를 플로팅합니다.
figure
surf(Xq,Yq,Vq);
title('Linear Interpolation Using Finer Grid');
3차 방법을 사용한 그리드 보간
peaks 함수를 성기게 샘플링합니다.
[X,Y] = meshgrid(-3:3); V = peaks(7);
성긴 샘플링을 플로팅합니다.
figure
surf(X,Y,V)
title('Original Sampling');
0.25 간격으로 쿼리 그리드를 만듭니다.
[Xq,Yq] = meshgrid(-3:0.25:3);
쿼리 점에서 보간하고 3차 보간을 지정합니다.
Vq = interp2(X,Y,V,Xq,Yq,'cubic');
결과를 플로팅합니다.
figure
surf(Xq,Yq,Vq);
title('Cubic Interpolation Over Finer Grid');
회색조 이미지 미세 조정
일부 이미지 데이터를 작업 공간으로 불러옵니다.
load flujet.mat colormap gray
이미지의 작은 영역을 떼어 내어 단정밀도로 형변환합니다.
V = single(X(200:300,1:25));
이미지 영역을 표시합니다.
imagesc(V); axis off title('Original Image')
각 차원에서 조정된 그리드의 점 사이 간격을 반복해서 다섯 번 나누어서 보간된 값을 삽입합니다.
Vq = interp2(V,5);
결과를 표시합니다.
imagesc(Vq); axis off title('Linear Interpolation')
X와 Y 영역 밖 계산
두 차원에서 모두 범위 [-2, 2]
에 대해 함수를 성기게 샘플링합니다.
[X,Y] = meshgrid(-2:0.75:2); R = sqrt(X.^2 + Y.^2)+ eps; V = sin(R)./(R);
성긴 샘플링을 플로팅합니다.
figure
surf(X,Y,V)
xlim([-4 4])
ylim([-4 4])
title('Original Sampling')
X
와 Y
의 정의역을 벗어나는 쿼리 그리드를 만듭니다.
[Xq,Yq] = meshgrid(-3:0.2:3);
X
와 Y
의 정의역 내에서 3차 보간을 수행하고, 정의역을 벗어나는 모든 쿼리에 0을 대입합니다.
Vq = interp2(X,Y,V,Xq,Yq,'cubic',0);
결과를 플로팅합니다.
figure
surf(Xq,Yq,Vq)
title('Cubic Interpolation with Vq=0 Outside Domain of X and Y');
입력 인수
X,Y
— 샘플 그리드 점
행렬 | 벡터
샘플 그리드 점으로, 실수 행렬 또는 실수 벡터로 지정됩니다. 샘플 그리드 점은 고유해야 합니다.
X
와Y
가 행렬이면 전체 그리드(meshgrid 형식)의 좌표를 포함합니다.X
행렬과Y
행렬을 함께 만들려면meshgrid
함수를 사용하십시오. 두 행렬은 크기가 동일해야 합니다.X
와Y
가 벡터이면 그리드 벡터로 처리됩니다. 두 벡터의 값은 모두 순단조 증가 또는 감소 형식이어야 합니다.
예: [X,Y] = meshgrid(1:30,-10:10)
데이터형: single
| double
V
— 샘플 값
행렬
샘플 값으로, 실수 행렬 또는 복소수 행렬로 지정됩니다. V
의 크기 요구 사항은 X
와 Y
의 크기에 따라 달라집니다.
X
와Y
가 전체 그리드(meshgrid
형식)를 나타내는 행렬인 경우V
는X
및Y
와 크기가 동일해야 합니다.X
와Y
가 그리드 벡터인 경우V
는length(Y)
행과length(X)
열을 갖는 행렬이어야 합니다.
V
에 복소수가 있는 경우 interp2
는 실수부와 허수부를 각각 별도로 보간합니다.
예: rand(10,10)
데이터형: single
| double
복소수 지원 여부: 예
Xq,Yq
— 쿼리 점
스칼라 | 벡터 | 행렬 | 배열
쿼리 점으로, 실수형 스칼라, 벡터, 행렬, 배열 중 하나로 지정됩니다.
Xq
와Yq
가 스칼라이면, 이들은 단일 쿼리 점의 좌표가 됩니다.Xq
와Yq
가 방향이 다른 벡터이면Xq
와Yq
는 그리드 벡터로 처리됩니다.Xq
와Yq
가 크기와 방향이 같은 벡터이면Xq
와Yq
는 2차원 공간의 산점(Scattered Point)으로 처리됩니다.Xq
와Yq
가 행렬이면, 이들은 쿼리 점의 전체 그리드(meshgrid
형식) 또는 산점을 나타냅니다.Xq
와Yq
가 N차원 배열이면 이들은 2차원 공간의 산점을 나타냅니다.
예: [Xq,Yq] = meshgrid((1:0.1:10),(-5:0.1:0))
데이터형: single
| double
k
— 세분화 인자(Refinement Factor)
1
(디폴트 값) | 음이 아닌 실수형 정수 스칼라
세분화 인자로, 음이 아닌 실수형 정수 스칼라로 지정됩니다. 이 값은 각 차원에서 조정된 그리드의 간격을, 반복적으로 나누는 횟수를 지정합니다. 결과적으로, 샘플 값 간에 2^k-1
개의 보간된 점이 생성됩니다.
k
가 0
이면 Vq
는 V
와 동일합니다.
interp2(V,1)
은 interp2(V)
와 동일합니다.
다음 그림은 k=2
의 경우로, 9개의 샘플 값(검은색) 사이에 보간된 값(빨간색)의 배치를 보여줍니다.
예: interp2(V,2)
데이터형: single
| double
method
— 보간 방법
'linear'
(디폴트 값) | 'nearest'
| 'cubic'
| 'spline'
| 'makima'
보간 방법으로, 다음 표에 나와 있는 옵션 중 하나로 지정됩니다.
방법 | 설명 | 연속성 | 설명 |
---|---|---|---|
'linear' | 쿼리 점에서 보간된 값은 각 차원의 인접 그리드 점에서 값이 선형 보간된 것입니다. 이는 디폴트 보간 방법입니다. | C0 |
|
'nearest' | 쿼리 점에서 보간된 값은 가장 근접한 샘플 그리드 점에서의 값입니다. | 불연속 |
|
'cubic' | 쿼리 점에서 보간된 값은 각 차원의 인접 그리드 점에서 값이 3차 보간된 것입니다. 이 보간은 3차 컨벌루션을 기반으로 합니다. | C1 |
|
'makima' | 아키마 3차 에르미트 다항식 변형 보간. 쿼리 점에서 보간된 값은 각 차원의 인접 그리드 점 값을 사용하여 계산된, 차수가 최대 3인 다항식의 조각별 함수를 기반으로 합니다. 아키마 수식이 오버슈트를 방지하도록 수정되었습니다. | C1 |
|
'spline' | 쿼리 점에서 보간된 값은 각 차원의 인접 그리드 점에서 값이 3차 보간된 것입니다. 이 보간은 not-a-knot 끝점 조건을 사용한 3차 스플라인을 기반으로 합니다. | C2 |
|
extrapval
— X
와 Y
영역 밖의 함수 값
스칼라
X
와 Y
영역 밖의 함수 값으로, 실수 또는 복소수 스칼라로 지정됩니다. interp2
는 X
와 Y
의 영역 밖에 있는 모든 점에 대해 이 상수 값을 반환합니다.
예: 5
예: 5+1i
데이터형: single
| double
복소수 지원 여부: 예
출력 인수
Vq
— 보간된 값
스칼라 | 벡터 | 행렬
보간된 값으로, 실수 또는 복소수 스칼라, 벡터, 행렬 중 하나로 반환됩니다. Vq
의 크기와 형태는 사용하는 구문에 따라 다르며, 입력 인수의 크기와 값에 따라 달라지기도 합니다.
구문 | 특수 조건 | Vq의 크기 | 예 |
---|---|---|---|
interp2(X,Y,V,Xq,Yq) interp2(V,Xq,Yq) 와이러한 구문의 변형(변형된 구문에는 method 또는 extrapval 이 포함됨) | Xq , Yq 가 스칼라임 | 스칼라 | Xq 와 Yq 를 스칼라로 전달하면 size(Vq) = [1 1] 입니다. |
위와 동일 | Xq , Yq 가 크기와 방향이 동일한 벡터임 | Xq 및 Yq 와 크기와 방향이 동일한 벡터 | size(Xq) = [100 1] 이고 size(Yq) = [100 1] 이면 size(Vq) = [100 1] 이 됩니다. |
위와 동일 | Xq , Yq 가 방향이 혼합된 벡터임 | 행 개수가 length(Yq) 이고 열 개수가 length(Xq) 인 행렬 | size(Xq) = [1 100] 이고 size(Yq) = [50 1] 이면 size(Vq) = [50 100] 이 됩니다. |
위와 동일 | Xq , Yq 가 크기가 동일한 행렬이거나 배열임 | Xq 및 Yq 와 크기가 동일한 행렬 또는 배열 | size(Xq) = [50 25] 이고 size(Yq) = [50 25] 이면 size(Vq) = [50 25] 이 됩니다. |
interp2(V,k) 와이 구문의 변형(변형된 구문에는 method 또는 extrapval 이 포함됨) | 없음 | 행 개수가 | size(V) = [10 20] 이고 k = 2 이면 size(Vq) = [37 77] 이 됩니다. |
세부 정보
순단조(Strictly Monotonic)
증가 또는 감소의 방향에 반전이 없는 일련의 값들입니다. 예를 들어, 시퀀스 a = [2 4 6 8]
은 순단조 증가 형식입니다. 시퀀스 b = [2 4 4 6 8]
은 b(2)
와 b(3)
사이에 값의 변화가 없으므로 순단조 형식이 아닙니다. 시퀀스 c = [2 4 6 8 6]
에는 c(4)
와 c(5)
사이에 반전이 포함되어 있으므로 단조 형식이 아닙니다.
전체 그리드(meshgrid 형식)
interp2
에서 전체 그리드는 한 쌍의 행렬로, 이 행렬의 요소가 사각형 영역 전반에 걸쳐 점의 그리드를 나타냅니다. 한 행렬에는 x 좌표가 포함되고 다른 행렬에는 y 좌표가 포함됩니다. x 행렬의 값은 행을 따라 순단조(Strictly Monotonic) 증가합니다. 열을 따르는 값은 균일합니다. y 행렬의 값은 열을 따라 순단조(Strictly Monotonic) 증가합니다. 행을 따르는 값은 균일합니다. interp2
에 전달할 수 있는 전체 그리드를 만들려면 meshgrid
함수를 사용하십시오.
예를 들어, 다음 코드는 영역 –1 ≤ x ≤ 3 및 1 ≤ y ≤ 4에 대한 전체 그리드를 만듭니다.
[X,Y] = meshgrid(-1:3,(1:4))
X = -1 0 1 2 3 -1 0 1 2 3 -1 0 1 2 3 -1 0 1 2 3 Y = 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3 4 4 4 4 4
그리드 벡터 형식은 전체 그리드 형식보다 그리드를 간결하게 표현합니다. 두 형식 사이의 관계와 샘플 값으로 구성된 행렬 V
는 다음과 같습니다.
그리드 벡터
interp2
의 경우 그리드 벡터는 그리드에서 x 좌표와 y 좌표를 정의하는 한 쌍의 벡터로 구성됩니다. 행 벡터는 x 좌표를 정의하고 열 벡터는 y 좌표를 정의합니다.
예를 들어, 다음 코드는 –1 ≤ x ≤ 3 및 1 ≤ y ≤ 4인 영역을 지정하는 그리드 벡터를 만듭니다.
x = -1:3; y = (1:4)';
산점(Scattered Point)
interp2
의 경우 산점은 2차원 공간의 산점 모음을 정의하는 한 쌍의 배열로 구성됩니다. 한 배열에는 x 좌표가 포함되고 다른 배열에는 y 좌표가 포함됩니다.
예를 들어, 다음 코드는 점 (2,7), (5,3), (4,1)과 (10,9)를 지정합니다.
x = [2 5; 4 10]; y = [7 3; 1 9];
확장 기능
C/C++ 코드 생성
MATLAB® Coder™를 사용하여 C 코드나 C++ 코드를 생성할 수 있습니다.
사용법 관련 참고 및 제한 사항:
Xq
와Yq
는 크기가 동일해야 합니다. 그리드에서 값을 계산하려면meshgrid
를 사용하십시오.최상의 결과를 얻으려면
X
와Y
를 벡터로 제공하십시오. 이러한 벡터의 값은 순단조 증가 형식이어야 합니다.코드 생성 시
'makima'
보간 방법은 지원되지 않습니다.'cubic'
보간 방법의 경우 그리드의 간격이 균일하지 않으면 오류가 발생합니다. 이 경우'spline'
보간 방법을 사용하십시오.최상의 결과를 얻으려면
'spline'
보간 방법을 사용할 때 다음과 같이 하십시오.meshgrid
를 사용하여 입력 인수Xq
와Yq
를 만드십시오.V
의 차원 수에 비해 적은 수의 보간 지점을 사용하십시오. 큰 산점 세트에 대해 보간하는 것은 비효율적일 수 있습니다.
GPU 코드 생성
GPU Coder™를 사용하여 NVIDIA® GPU용 CUDA® 코드를 생성할 수 있습니다.
사용법 관련 참고 및 제한 사항:
Xq
와Yq
는 크기가 동일해야 합니다. 그리드에서 값을 계산하려면meshgrid
를 사용하십시오.최상의 결과를 얻으려면
X
와Y
를 벡터로 제공하십시오. 이러한 벡터의 값은 순단조 증가 형식이어야 합니다.코드 생성 시
'makima'
보간 방법은 지원되지 않습니다.'cubic'
보간 방법의 경우 그리드의 간격이 균일하지 않으면 오류가 발생합니다. 이 경우'spline'
보간 방법을 사용하십시오.최상의 결과를 얻으려면
'spline'
보간 방법을 사용할 때 다음과 같이 하십시오.meshgrid
를 사용하여 입력 인수Xq
와Yq
를 만드십시오.V
의 차원 수에 비해 적은 수의 보간 지점을 사용하십시오. 큰 산점 세트에 대해 보간하는 것은 비효율적일 수 있습니다.
스레드 기반 환경
MATLAB®의 backgroundPool
을 사용해 백그라운드에서 코드를 실행하거나 Parallel Computing Toolbox™의 ThreadPool
을 사용해 코드 실행 속도를 높일 수 있습니다.
이 함수는 스레드 기반 환경을 완전히 지원합니다. 자세한 내용은 스레드 기반 환경에서 MATLAB 함수 실행하기 항목을 참조하십시오.
GPU 배열
Parallel Computing Toolbox™를 사용해 GPU(그래픽스 처리 장치)에서 실행하여 코드 실행 속도를 높일 수 있습니다.
사용법 관련 참고 및 제한 사항:
V
는 double형 또는 single형 2차원 배열이어야 합니다.V
는 실수 또는 복소수일 수 있습니다.V
는 벡터일 수 없습니다.X
와Y
는 다음 조건을 충족해야 합니다.같은 유형(double형 또는 single형)을 가집니다.
대응하는 차원에 반복되는 요소가 없고 요소의 값이 증가하는 유한한 벡터 또는 2차원 배열입니다.
X
와Y
가 벡터가 아닌 2차원 배열인 경우 (meshgrid
에서 생성된 것처럼) 카테시안 좌표축에 정렬됩니다.V
와 일치하는 차원을 가집니다.
Xq
와Yq
는 같은 유형(double형 또는 single형)의 벡터 또는 배열이어야 합니다.Xq
와Yq
가 배열이면 크기가 같아야 합니다. 길이가 다른 벡터라면 방향이 서로 달라야 합니다.method
는'linear'
,'nearest'
또는'cubic'
이어야 합니다.경계 외 입력값에 대한 외삽은 지원되지 않습니다.
자세한 내용은 GPU에서 MATLAB 함수 실행하기 (Parallel Computing Toolbox) 항목을 참조하십시오.
분산 배열
Parallel Computing Toolbox™를 사용하여 대규모 배열을 클러스터의 결합된 메모리에 걸쳐 분할할 수 있습니다.
이 함수는 분산 배열을 완전히 지원합니다. 자세한 내용은 분산 배열을 사용하여 MATLAB 함수 실행 (Parallel Computing Toolbox) 항목을 참조하십시오.
버전 내역
R2006a 이전에 개발됨
참고 항목
griddata
| interp1
| interp3
| interpn
| meshgrid
| griddedInterpolant
| scatteredInterpolant
MATLAB 명령
다음 MATLAB 명령에 해당하는 링크를 클릭했습니다.
명령을 실행하려면 MATLAB 명령 창에 입력하십시오. 웹 브라우저는 MATLAB 명령을 지원하지 않습니다.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)