이번역페이지는최신내용을담고있지않습니다。최신내용을문으로보려면여기를클릭하십시오。
interp1
1차원데이터보간(테이블룩업)
구문
설명
는页
= interp1 (x
,v
,方法
“页”)方法
알고리즘을사용하여v (x)의조각별다항식(分段多项式)을반환합니다。
참고
이구문은권장되지않습니다。griddedInterpolant
를대신사용하십시오。
예제
성기게샘플링된사함수의보간
샘플 점x
와이에대응하는샘플값v
를정의합니다。
X = 0:pi/4:2*pi;V = sin(x);
x
의범위에걸쳐미세한샘플링이되도록쿼리점을정의합니다。
Xq = 0:pi/16:2*pi;
쿼리점에서함수를보간하고결과를플로팅합니다。
图vq1 = interp1(x,v,xq);情节(x, v,“o”xq vq1,“:”。);xlim([0 2 *π]);标题('(默认)线性插值');
이제样条的
방법을사용하여동일한점에서v
를계산합니다。
图vq2 = interp1(x,v,xq,样条的);情节(x, v,“o”xq vq2,“:”。);xlim([0 2 *π]);标题(样条插值的);
점을지정하지않고보간
일련의함수값을정의합니다。
V = [0 1.41 2 1.41 0 -1.41 -2 -1.41 0];
디폴트 점1:9
사이에속하는일련의쿼리점을정의합니다。이 경우v
에9
개의값이포함되므로디폴트점은1:9
입니다。
Xq = 1.5:8.5;
xq
에서v
를계산합니다。
Vq = interp1(v,xq);
결과를플로팅합니다。
图绘制((1:9),v,“o”xq矢量量化,‘*’);传奇(“v”,矢量量化的);
복소수값의보간
샘플점집합을정의합니다。
X = 1:10;
샘플점에서함수 의값을정의합니다。
V = (5*x)+(x.^2*1i);
x
의범위에걸쳐미세한샘플링이되도록쿼리점을정의합니다。
Xq = 1:0.25:10;
쿼리점에서v
를보간합니다。
Vq = interp1(x,v,xq);
결과의실수부를빨간색으로플로팅하고허수부를파란색으로플로팅합니다。
图绘制(x,真正的(v),“* r”xq,真实(vq),“- r”);持有在情节(x,图像放大(v),‘* b”xq,图像放大(vq),“- b”);
날짜와시간보간하기
타임스탬프가지정된데이터점을보간합니다。
4시간단위로측정된온도측정값이들어있는데이터세트가있다고가정합니다。하루치의데이터로테이블을만들고이데이터를플로팅합니다。
x = (datetime(2016、1、1):小时(4):datetime(2016年1、2)';x.Format =“MMM dd, HH:mm”;T = [31 25 24 41 43 33 31]';天气数据=表(x,T,“VariableNames”, {“时间”,“温度”})
WeatherData =7×2表时间温度_____________ ___________ 1月1日,1月31日00:00,1月25日04:00,1月24日08:00,1月01日12:00,1月41日16:00 43日,1月02日20:00 33日,00:00 31
情节(WeatherData。时间,WeatherData。温度,“o”)
데이터세트를보간하여하루중매분의온도측정값을예측합니다。이데이터는주기적이므로,样条的
보간방법을사용합니다。
Xq = (datetime(2016,1,1):minutes(1):datetime(2016,1,2))';V = interp1(天气数据。时间,WeatherData。温度,xq,样条的);
보간된점을플로팅합니다。
持有在情节(xq, V,“r”)
두가지다른방법으로외삽
샘플 점x
와이에대응하는샘플값v
를정의합니다。
X = [1 2 3 4 5];V = [12 16 31 10 6];
x
의역을벗어나는쿼리점xq
를지정합니다。
Xq = [0 0.5 1.5 5.5 6];
“pchip”
방법을사용하여xq
에서v
를계산합니다。
Vq1 = interp1(x,v,xq,“pchip”)
vq1 =1×519.3684 13.6316 13.2105 7.4800 12.5600
그 다음“线性”
방법을사용하여xq
에서v
를계산합니다。
Vq2 = interp1(x,v,xq,“线性”)
vq2 =1×5南南14南南
이제“线性”
방법을“extrap”
옵션과함께사용합니다。
Vq3 = interp1(x,v,xq,“线性”,“extrap”)
vq3 =1×58 10 14 4 2
“pchip”
은기본적으로외삽을적용하지만“线性”
는외삽을적용하지않습니다。
X의역밖에있는모든쿼리에대해상수값지정
샘플 점x
와이에대응하는샘플값v
를정의합니다。
X = [-3 -2 -1 0 1 2 3];V = 3*x.^2;
x
의역을벗어나는쿼리점xq
를지정합니다。
Xq = [-4 -2.5 -0.5 0.5 2.5 4];
이제“pchip”
방법을사용하여xq
에서v
를계산하고,x
의정의역밖에있는값에는값27
을대입합니다。
Vq = interp1(x,v,xq,“pchip”, 27)
vq =1×627.0000 18.6562 0.9375 0.9375 18.6562 27.0000
여러데이터세트를단일통과로보간
샘플점을정의합니다。
X = (-5:5)';
세가지다른포물선함수를x
에정의된점에서샘플링합니다。
V1 = x.^2;V2 = 2*x。^2 + 2;V3 = 3*x。^2 + 4;
각열이벡터v1
,v2
,v3
化学式행렬v
를만듭니다。
V = [v1 v2 v3];
x
의범위에걸쳐미세한샘플링이되도록쿼리점집합xq
를정의합니다。
Xq = -5:0.1:5;
xq
에서세개함수를모두계산하고결과를플로팅합니다。
Vq = interp1(x,v,xq,“pchip”);图绘制(x, v,“o”xq, vq);H = gca;h.XTick = -5:5;
플롯의원은v
를나타내고실선은矢量量化
를나타냅니다。
입력marketing수
x
- - - - - -샘플 점
벡터
샘플점으로,실수의행벡터또는열벡터로지정됩니다。x
의값은고유해야합니다。x
의길이는다음구사항중하나를준수해야합니다。
v
가벡터경우长度(x)
는长度(v)
와같아야합니다。v
가배열경우长度(x)
는大小(v, 1)
과같아야합니다。
예:[1 2 3 4 5 6 7 8 9 10]
예:1:10
예:[3 7 11 15 19 23 27 31]'
데이터형:单
|双
|持续时间
|datetime
v
- - - - - -샘플 값
벡터|행렬|배열
샘플값으로,실수또는복소수로구성된벡터,행렬,배열중하나로지정됩니다v
가행렬또는배열marketing경우각열은별개의1차원값세트를포함합니다。
v
에복소수가있는경우interp1
은실수부와허수부를각각별도로보간합니다。
예:兰德(10)
예:兰特(10,1)
예:兰特(10,3)
데이터형:单
|双
|持续时间
|datetime
복소수지원여부:예
xq
- - - - - -쿼리 점
스칼라|벡터|행렬|배열
쿼리점으로,실수로구성된스칼라,벡터,행렬,배열중하나로지정됩니다
예:5
예:1:0.05:10
예:(1:0.05:10) '
예:[0 1 2 7.5 10]
데이터형:单
|双
|持续时间
|datetime
方法
- - - - - -보간 방법
“线性”
(디폴트값)|“最近的”
|“下一个”
|“以前”
|“pchip”
|“立方”
|“v5cubic”
|“makima”
|样条的
보간방법으로,다음@에나와있는옵션중하나로지정됩니다。
메서드 |
설명 |
연속성 |
설명 |
---|---|---|---|
|
선형보간입니다。쿼리점에서보간된값은각차원의접그리드점에서값이선형보간된것입니다。이는디폴트보간방법입니다。 |
C0 |
|
|
최근접이웃보간입니다。쿼리점에서보간된값은가장근접한샘플그리드점에서의값입니다。 |
불연속 |
|
|
다음근방(下一个邻居)보간입니다。쿼리점에서보간된값은그다음샘플그리드점에서의값입니다。 |
불연속 |
|
|
이전근방(上一个邻居)보간입니다。쿼리점에서보간된값은이전샘플그리드점에서의값입니다。 |
불연속 |
|
|
형태보존조각별3차보간입니다。쿼리점에서보간된값은인접그리드점에서값이형태보존조각3차별보간된것입니다。 |
C1 |
|
|
MATLAB®5에서사용되는3차컨벌루션입니다。 |
C1 |
|
|
|
C1 |
|
|
아키마3차에르미트다항식변형보간。쿼리점에서보간된값은차수가최대3 rm다항식의조각별함수를기반으로합니다。아키마수식이오버슈트를방지하도록수정되었습니다。 |
C1 |
|
|
Not-a-knot끝점조건을사용한스플라보간입니다。쿼리점에서보간된값은각차원의marketing접그리드점에서값이3차보간된것입니다。 |
C2 |
|
外推法
- - - - - -외삽법(보외법)
“extrap”
|스칼라 값
외삽법으로,“extrap”
나실수형스칼라값으로지정됩니다。
interp1
이보간에사용하는것과동일한방법을사용하여역밖에있는점을계산하도록하려면“extrap”
을지정하십시오。interp1
이영역밖에있는점에대해특정상수값을반환하도록하려면스칼라값을지정하십시오。
디폴트동작은입력수에따라달라집니다。
“pchip”
,样条的
,“makima”
보간방법중하나를지정할경우디폴트동작은“extrap”
입니다。다른모든보간방법은역밖에있는쿼리점에대해기본적으로
南
을반환합니다。
예:“extrap”
예:5
데이터형:字符
|字符串
|单
|双
출력marketing수
矢量量化
-보간된값
스칼라|벡터|행렬|배열
보간된값으로,스칼라,벡터,행렬,배열중하나로반환됩니다矢量量化
의 크기는v
와xq
의형태에따라달라집니다。
V의형태 | Xq의형태 | Vq의크기 | 예 |
---|---|---|---|
벡터 | 벡터 | 大小(xq) |
尺寸(v) = [1 100] 이고Size (xq) = [1 500] 이면Size (vq) = [1 500] 이됩니다。 |
벡터 | 행렬 또는n차원배열 |
大小(xq) |
尺寸(v) = [1 100] 이고Size (xq) = [5030] 이면Size (vq) = [50 30] 이됩니다。 |
행렬 또는n차원배열 |
벡터 | [长度(xq)大小(v, 2),…,大小(v, n)) |
尺寸(v) = [100 3] 이고Size (xq) = [1 500] 이면Size (vq) = [500 3] 이됩니다。 |
행렬 또는n차원배열 |
행렬 또는n차원배열 |
(尺寸(xq, 1),…,大小(xq, n),…大小(v, 2),…,大小(v, m)] |
尺寸(v) = [4 5 6] 이고Size (xq) = [2 3 7] 이면Size (vq) = [2 3 7 5 6] 이됩니다。 |
页
-조각별다항식
구조체
조각별다항식(分段多项式)으로,계산을위해ppval
함수로전달될수있도록구조체로반환됩니다。
세부 정보
아키마와스플라보간
1차원보간에대한아키마알고리즘은연1계속도함수(C1)를갖는조각별다항식들을생성하기위해3차보간을수행합니다。자세한설명은[1]과[2]를참조하십시오。이알고리즘은기울기를보존하고평탄역에서의동을방지합니다。평탄영역은동일직선상의점이3개이상연속될때마다발생하는데,이알고리즘에서는이러한점들을직선으로연결합니다。두데이터점사이의영역의평탄성을보장하려면두점사이에데이터점을하나삽입하십시오。
기울기가서로다른두평탄영역이만나는경우,기존아키마알고리즘에적용된수정사항은기울기에가0더가까운쪽에가중치를더줍니다。수정된알고리즘은가로에더가까운쪽에우선순위를주는데,이는보다직관적이면서오버슈트를방지합니다。(기존아키마알고리즘은양쪽점에동일한가중치를주기때문에요동이균일하게분배됩니다。)
반면스플라알고리즘은3차보간을수행하여연속2계도함수(c2)를갖는조각별다항식들을생성합니다。결과는일반적인다항식보간과비슷하지만높은차수에서데이터점사이의심한진동에영향을훨씬덜받습니다。그렇지만이방법도데이터점사이의진동과오버슈트의향을받을수있습니다。
아키마알고리즘은스플라인알고리즘과비교했을때요동을더적게생성하며평탄영역간의빠른변화에대응하기에더적합합니다。다음은여러개의평탄영역을연결하는테스트데이터를사용하여두알고리즘의차이를도식화한것입니다。
호환성관련고려사항
interp1
의“立方”
방법은3차컨벌루션을수행함
R2020b에서동작이변경됨
R2020b에서interp1
의“立方”
보간방법은3차컨벌루션을수행합니다。이제“v5cubic”
과“立方”
보간방법은interp2
,interp3
,interpn
동작과일치하는동일한유형의보간을수행합니다。3차컨벌루션보간방법은균일한간격의데이터를위한것으로,불규칙한간격의데이터는样条的
보간을사용합니다。
이전릴리스에서는“立方”
이“pchip”
와동일했고“v5cubic”
만3차컨벌루션을수행했습니다。
참고 문헌
[1]秋岛,浩。“一种基于局部程序的插值平滑曲线拟合新方法。”中华医学会杂志,1970年第4期,第589-602页。
[2]秋岛,浩。一种基于局部程序的二元插值和光滑曲面拟合方法。美国计算机学会通讯,1974年第17.1期,第18-20页。
확장 기능
C/ c++코드생성
MATLAB®Coder™를사용하여C코드나c++코드를생성할수있습니다。
사용법관련참고및제한사항:
코드생성시
“立方”
또는“makima”
보간방법은지원되지않습니다。입력marketing수
x
(샘플점)는순가하거나순감소해야합니다。덱스는재정렬되지않습니다。입력marketing수
v
(샘플값)가가변길이벡터:
또는:
×1)출력marketing수矢量量化
의형태는matlab에있는형태와일치합니다。입력marketing수
v
가가변크기이고가,변길이벡터가아니며,런타임시행벡터가되는경우오류가발생합니다。입력marketing수
xq
(쿼리점)가가변크기이고,가변길이벡터가아니며,런타임시행또는열벡터가되는경우오류가발생합니다。工具箱函数代码生成的可变大小限制(MATLAB编码器)항목을참조하십시오。
Gpu코드생성
GPU编码器™를사용하여NVIDIA GPU®용CUDA®코드를생성할수있습니다。
사용법관련참고및제한사항:
코드생성시
“立方”
또는“makima”
보간방법은지원되지않습니다。입력marketing수
x
(샘플점)는순가하거나순감소해야합니다。덱스는재정렬되지않습니다。입력marketing수
v
(샘플값)가가변길이벡터:
또는:
×1)출력marketing수矢量量化
의형태는matlab에있는형태와일치합니다。입력marketing수
v
가가변크기이고가,변길이벡터가아니며,런타임시행벡터가되는경우오류가발생합니다。입력marketing수
xq
(쿼리점)가가변크기이고,가변길이벡터가아니며,런타임시행또는열벡터가되는경우오류가발생합니다。工具箱函数代码生成的可变大小限制(MATLAB编码器)항목을참조하십시오。
Gpu배열
并行计算工具箱™를사용해GPU(그래픽스처리장치)에서실행하여코드실행속도를높일수있습니다。
분산 배열
并行计算工具箱™를사용하여대규모배열을클러스터의결합된메모리에걸쳐분할할수있습니다。
이함수는분산배열을완전히지원합니다。자세한내용은분산배열을사용하여matlab함수실행(并行计算工具箱)항목을참조하십시오。
Matlab명령
다음matlab명령에해당하는링크를클릭했습니다。
명령을실행하려면matlab명령창에입력하십시오。웹브라우저는matlab명령을지원하지않습니다。
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。