이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.
fillmissing
누락된 요소 채우기
구문
설명
는 배열이나 테이블의 누락된 요소를 상수 값 F
= fillmissing(A
,'constant',v
)v
로 채웁니다. A
가 행렬이거나 다차원 배열인 경우 v
는 스칼라 또는 벡터일 수 있습니다. v
가 벡터이면 각 요소는 A
의 대응하는 열의 채우기 값을 지정합니다. A
가 테이블 또는 타임테이블이면 v
도 각각의 테이블 변수에 대한 채우기 값이 배열 요소에 포함된 셀형 배열일 수 있습니다.
누락값은 다음과 같이 A
의 데이터형에 따라 정의됩니다.
NaN
—double
형,single
형,duration
형,calendarDuration
형NaT
—datetime
<missing>
—string
<undefined>
—categorical
{''}
— 문자형 벡터로 구성된cell
형
A
가 테이블이면 각 변수의 데이터형에 따라 해당 변수의 누락값이 정의됩니다.
는 하나 이상의 이름-값 인수를 사용하여 누락값을 채우기 위한 추가 파라미터를 지정합니다. 예를 들어, F
= fillmissing(___,Name,Value
)t
가 시간 값의 벡터인 경우 fillmissing(A,'linear','SamplePoints',t)
는 t
의 시간을 기준으로 A
의 데이터를 보간합니다.
예제
NaN
값이 포함된 벡터
NaN
값이 포함된 벡터를 만든 다음, 각각의 NaN
을 누락되지 않은 이전 값으로 바꿉니다.
A = [1 3 NaN 4 NaN NaN 5];
F = fillmissing(A,'previous')
F = 1×7
1 3 3 4 4 4 5
NaN
값으로 구성된 행렬
각 열에 NaN
값을 포함하는 2×2 행렬을 만듭니다. 첫 번째 열과 두 번째 열의 NaN
을 각각 100
과 1000
으로 채웁니다.
A = [1 NaN; NaN 2]
A = 2×2
1 NaN
NaN 2
F = fillmissing(A,'constant',[100 1000])
F = 2×2
1 1000
100 2
누락된 데이터 보간하기
균일하지 않게 샘플링된 데이터의 NaN
값을 보간을 사용하여 바꿉니다.
균일하지 않은 샘플 점으로 구성된 벡터를 정의하고 이들 점에서 사인 함수의 값을 구합니다.
x = [-4*pi:0.1:0, 0.1:0.2:4*pi]; A = sin(x);
A
에 NaN
값을 넣습니다.
A(A < 0.75 & A > 0.5) = NaN;
선형 보간을 사용하여 누락된 데이터를 채운 다음, 채워진 벡터 F
와 논리형 벡터 TF
를 반환합니다. TF
의 요소에서 값 1(true
)의 위치는 F
에서 채워진 요소의 위치에 해당합니다.
[F,TF] = fillmissing(A,'linear','SamplePoints',x);
원래 데이터와 채워진 데이터를 플로팅합니다.
scatter(x,A) hold on scatter(x(TF),F(TF)) legend('Original Data','Filled Data')
이동 중앙값 방법 사용하기
이동 중앙값을 사용하여 누락된 숫자형 데이터를 채웁니다.
샘플 점 x
의 벡터와 누락값이 들어 있는 데이터로 구성된 벡터 A
를 만듭니다.
x = linspace(0,10,200); A = sin(x) + 0.5*(rand(size(x))-0.5); A([1:10 randi([1 length(x)],1,50)]) = NaN;
윈도우 길이가 10인 이동 중앙값을 사용하여 A
의 NaN
값을 바꾸고 원래 데이터와 채워진 데이터를 플로팅합니다.
F = fillmissing(A,'movmedian',10); plot(x,F,'.-') hold on plot(x,A,'.-') legend('Original Data','Filled Data')
사용자 지정 채우기 방법 사용
사용자 지정 함수를 정의하여 누락되지 않은 이전 값으로 NaN
값을 채웁니다.
샘플 점 t
의 벡터와 이에 대응하는 NaN
값이 들어 있는 데이터의 벡터 A
를 정의합니다. 데이터를 플로팅합니다.
t = 10:10:100; A = [0.1 0.2 0.3 NaN NaN 0.6 0.7 NaN 0.9 1]; scatter(t,A)
로컬 함수 forwardfill
(예제 마지막 부분에서 정의함)을 사용하여 누락되지 않은 이전 값으로 누락된 요소의 빈 간격을 채웁니다. 함수 핸들 입력값은 다음을 포함합니다.
xs
— 채우기에 사용되는 데이터 값ts
— 채우기에 사용되는 값의 위치(샘플 점을 기준으로 함)tq
— 누락값의 위치(샘플 점을 기준으로 함)n
— 채울 빈 간격에 있는 값의 개수
n = 2;
gapwindow = [10 0];
[F,TF] = fillmissing(A,@(xs,ts,tq) forwardfill(xs,ts,tq,n),gapwindow,'SamplePoints',t);
간격 윈도우 값이 [10 0]
이고 누락 요소의 빈 간격으로부터 10단위 앞에 누락되지 않은 값이 있으므로, fillmissing
은 누락 요소의 빈 간격 앞에 있는 1개 데이터 점을 고려하고 뒤에 있는 데이터 점은 고려하지 않게 됩니다. 첫 번째 빈 간격에 대해 fillmissing
으로 결정되는 함수 핸들 입력값은 다음과 같습니다.
xs = 0.3
ts = 30
tq = [40 50]
두 번째 빈 간격에 대한 함수 핸들 입력값은 다음과 같습니다.
xs = 0.7
ts = 70
tq = 80
원래 데이터와 채워진 데이터를 플로팅합니다.
scatter(t,A)
hold on
scatter(t(TF),F(TF))
function y = forwardfill(xs,ts,tq,n) % Fill n values in the missing gap using the previous nonmissing value y = NaN(1,numel(tq)); y(1:min(numel(tq),n)) = xs; end
끝점 값이 누락된 행렬
누락된 요소가 있는 행렬을 만든 다음, 선형 보간을 사용하여 한 번에 한 행씩 열(2번째 차원) 전체를 채웁니다. 각 행에서, 선행 누락값과 후행 누락값을 해당 행에서 누락되지 않은 가장 가까운 값으로 채웁니다.
A = [NaN NaN 5 3 NaN 5 7 NaN 9 NaN; 8 9 NaN 1 4 5 NaN 5 NaN 5; NaN 4 9 8 7 2 4 1 1 NaN]
A = 3×10
NaN NaN 5 3 NaN 5 7 NaN 9 NaN
8 9 NaN 1 4 5 NaN 5 NaN 5
NaN 4 9 8 7 2 4 1 1 NaN
F = fillmissing(A,'linear',2,'EndValues','nearest')
F = 3×10
5 5 5 3 4 5 7 8 9 9
8 9 5 1 4 5 5 5 5 5
4 4 9 8 7 2 4 1 1 1
여러 데이터형이 포함된 테이블
서로 다른 데이터형을 갖는 테이블 변수의 누락된 값을 채웁니다.
categorical
, double
, char
데이터형의 변수로 구성된 테이블을 만듭니다.
A = table(categorical({'Sunny'; 'Cloudy'; ''}),[66; NaN; 54],{''; 'N'; 'Y'},[37; 39; NaN],... 'VariableNames',{'Description' 'Temperature' 'Rain' 'Humidity'})
A=3×4 table
Description Temperature Rain Humidity
___________ ___________ __________ ________
Sunny 66 {0x0 char} 37
Cloudy NaN {'N' } 39
<undefined> 54 {'Y' } NaN
모든 누락된 요소를 이전 요소의 값으로 바꿉니다. Rain
변수에는 이전 요소가 없으므로, 누락된 문자형 벡터가 바뀌지 않습니다.
F = fillmissing(A,'previous')
F=3×4 table
Description Temperature Rain Humidity
___________ ___________ __________ ________
Sunny 66 {0x0 char} 37
Cloudy 66 {'N' } 39
Cloudy 54 {'Y' } 39
A
의 Temperature
변수와 Humidity
변수의 NaN
값을 0으로 바꿉니다.
F = fillmissing(A,'constant',0,'DataVariables',{'Temperature','Humidity'})
F=3×4 table
Description Temperature Rain Humidity
___________ ___________ __________ ________
Sunny 66 {0x0 char} 37
Cloudy 0 {'N' } 39
<undefined> 54 {'Y' } 0
또는 isnumeric
함수를 사용하여 연산을 수행할 숫자형 변수를 식별할 수도 있습니다.
F = fillmissing(A,'constant',0,'DataVariables',@isnumeric)
F=3×4 table
Description Temperature Rain Humidity
___________ ___________ __________ ________
Sunny 66 {0x0 char} 37
Cloudy 0 {'N' } 39
<undefined> 54 {'Y' } 0
이제 A
의 누락값을 테이블 변수마다 지정된 상수로 채웁니다. 이 상수는 셀형 배열에 포함되어 있습니다.
F = fillmissing(A,'constant',{categorical({'None'}),1000,'Unknown',1000})
F=3×4 table
Description Temperature Rain Humidity
___________ ___________ ___________ ________
Sunny 66 {'Unknown'} 37
Cloudy 1000 {'N' } 39
None 54 {'Y' } 1000
최대 간격 지정하기
시간 벡터 t
(단위: 초)와 이에 대응하는 NaN
값이 들어 있는 데이터로 구성된 벡터 A
를 만듭니다.
t = seconds([2 4 8 17 98 134 256 311 1001]); A = [1 3 23 NaN NaN NaN 100 NaN 233];
최대 간격 크기 250초에 해당하는 A
의 누락값만 채웁니다. 두 번째 빈 간격은 250초보다 크므로 NaN
값이 채워지지 않습니다.
F = fillmissing(A,'linear','SamplePoints',t,'MaxGap',seconds(250))
F = 1×9
1.0000 3.0000 23.0000 25.7944 50.9435 62.1210 100.0000 NaN 233.0000
사용자 지정 거리 함수 사용하기
사용자 지정 거리 함수를 사용하여 최근접이웃 행의 값으로 누락된 요소를 채웁니다.
NaN
값이 포함된 행렬을 만든 다음, 세 번째 행의 누락된 요소의 위치를 나타내는 논리형 벡터를 만듭니다.
A = [1 3 9 3; -5 1 7 2; -1 1 7 NaN; 12 1 9 1]; m = isnan(A(3,:));
행 간의 거리를 측정하기 위해 두 개의 사용자 지정 함수를 정의합니다.
함수 d1
은 각 좌표 쌍 간의 거리를 합산하는 방식으로 행 간의 거리를 측정합니다. 함수 dinf
는 좌표 쌍들 중에서 최대 거리를 구하는 방식으로 행 간의 거리를 측정합니다.
d1 = @(x,~) sum(abs(diff(x)),'omitnan'); dinf = @(x,isNaN) norm(diff(x(:,~isNaN(1,:))),'inf');
세 번째 행과 각각의 다른 3개 행 간에 d1
로 측정된 거리를 계산합니다. 두 번째 행이 가장 가깝습니다.
d1s = arrayfun(@(r) d1(A([r 3],:),m), setdiff(1:4,3))
d1s = 1×3
6 4 15
fillmissing
함수는 세 번째 행의 NaN
을 두 번째 행의 대응값 2
로 바꿉니다.
F1 = fillmissing(A,'knn','Distance',d1)
F1 = 4×4
1 3 9 3
-5 1 7 2
-1 1 7 2
12 1 9 1
dinf
로 측정된 거리로 유사한 분석을 수행하면 첫 번째 행이 세 번째 행과 가장 가까운 것을 알 수 있습니다. 이제 fillmissing
함수는 세 번째 행의 NaN
을 첫 번째 행의 대응값 3으로 바꿉니다.
dinfs = arrayfun(@(r) dinf(A([r 3],:),m), setdiff(1:4,3))
dinfs = 1×3
2 4 13
Finf = fillmissing(A,'knn','Distance',dinf)
Finf = 4×4
1 3 9 3
-5 1 7 2
-1 1 7 3
12 1 9 1
입력 인수
A
— 입력 데이터
벡터 | 행렬 | 다차원 배열 | 문자형 벡터로 구성된 셀형 배열 | 테이블 | 타임테이블
입력 데이터로, 벡터, 행렬, 다차원 배열, 문자형 벡터로 구성된 셀형 배열, table형 또는 timetable형으로 지정됩니다.
A
가 timetable형이면 테이블 값만 채워집니다. 행 시간값으로 구성된 관련 벡터에NaT
값이나NaN
값이 포함되어 있으면fillmissing
은 오류를 생성합니다. 행 시간값은 고유해야 하며 오름차순으로 나열되어야 합니다.A
가 셀형 배열이거나 셀형 배열 변수를 갖는 table형이면fillmissing
은 셀형 배열에 문자형 벡터가 포함된 경우에만 누락된 값을 채웁니다.
v
— 채우기 상수
스칼라 | 벡터 | 셀형 배열
채우기 상수로, 스칼라, 벡터 또는 셀형 배열로 지정됩니다.
A
가 행렬 또는 다차원 배열일 때v
는 벡터일 수 있으며, 그럴 경우 각 연산 차원에 대한 서로 다른 채우기 값을 나타냅니다.v
의 길이는 연산 차원의 길이와 같아야 합니다.A
가 테이블 또는 타임테이블일 때v
는 채우기 값으로 구성된 셀형 배열일 수 있으며, 그럴 경우 각 변수에 대한 서로 다른 채우기 값을 나타냅니다. 셀형 배열의 요소 개수는 테이블의 변수 개수와 일치해야 합니다.
method
— 채우기 방법
'previous'
| 'next'
| 'nearest'
| 'linear'
| 'spline'
| 'pchip'
| 'makima'
채우기 방법으로, 다음 값 중 하나로 지정됩니다.
방법 | 설명 |
---|---|
'previous' | 누락값이 아닌 이전 값 |
'next' | 누락값이 아닌 다음 값 |
'nearest' | x축에 의해 정의된, 누락값 아닌 가장 가까운 값 |
'linear' | 누락값이 아닌 인접 값들의 선형 보간(숫자, duration , datetime 데이터형에만 해당) |
'spline' | 조각별 3차 스플라인 보간(숫자, duration , datetime 데이터형에만 해당) |
'pchip' | 형태 보존 조각별 3차 스플라인 보간(숫자, duration , datetime 데이터형에만 해당) |
'makima' | 아키마 3차 에르미트 다항식 변형 보간(숫자, duration 및 datetime 데이터형에만 해당) |
movmethod
— 이동 방법
'movmean'
| 'movmedian'
누락된 데이터를 채울 이동 방법으로, 다음 값 중 하나로 지정됩니다.
방법 | 설명 |
---|---|
'movmean' | 길이가 window 인 윈도우에 걸친 이동평균(숫자 데이터형의 경우에만 해당) |
'movmedian' | 길이가 window 인 윈도우에 걸친 이동 중앙값(숫자 데이터형의 경우에만 해당) |
window
— 윈도우 길이
양의 정수 스칼라 | 양의 정수로 구성된 요소를 2개 가진 벡터 | 양의 duration형 스칼라 | 양의 duration형으로 구성된 요소를 2개 가진 벡터
이동 방법의 윈도우 길이로, 양의 정수 스칼라, 양의 정수로 구성된 요소를 2개 가진 벡터, 양의 duration형 스칼라 또는 양의 duration형으로 구성된 요소를 2개 가진 벡터로 지정됩니다. 윈도우는 샘플 점을 기준으로 정의됩니다.
window
가 양의 정수 스칼라인 경우 윈도우는 현재 요소를 중심으로 하며, window-1
개의 인접 요소를 가집니다. window
가 짝수이면 윈도우의 중심은 현재 요소 및 이전 요소가 됩니다.
window
가 양의 정수로 구성된 요소를 2개 가진 벡터 [b f]
인 경우 윈도우에는 현재 요소, 현재 요소의 역방향으로 b
개 요소, 그리고 현재 요소의 정방향으로 f
개 요소가 들어 있습니다.
A
가 timetable형이거나 SamplePoints
가 datetime
형 또는 duration
형 벡터로 지정된 경우 창은 duration
형이어야 합니다.
k
— 최근접이웃 수
1
(디폴트 값) | 양의 정수 스칼라
'knn'
방법으로 평균을 구하기 위한 최근접이웃 수로, 양의 정수 스칼라로 지정됩니다.
fillfun
— 사용자 지정 채우기 방법
함수 핸들
예: @(xs,ts,tq) myfun(xs,ts,tq)
사용자 지정 채우기 방법으로, 함수 핸들로 지정됩니다. 유효한 함수 핸들은 다음 세 개의 입력 인수를 포함해야 합니다.
입력 인수 | 설명 |
---|---|
xs | 채우기에 사용되는 데이터 값을 포함하는 벡터. xs 의 길이는 지정된 윈도우의 길이와 같아야 합니다. |
ts | 채우기에 사용되는 값의 위치를 포함하는 벡터. ts 의 길이는 지정된 윈도우의 길이와 같아야 합니다. ts 는 샘플 점 벡터의 일부입니다. |
tq | 누락값의 위치를 포함하는 벡터. tq 는 샘플 점 벡터의 일부입니다. |
함수는 tq
와 길이가 같은 스칼라 또는 벡터를 반환해야 합니다.
gapwindow
— 간격 윈도우 길이
양의 정수 스칼라 | 양의 정수로 구성된 요소를 2개 가진 벡터 | 양의 duration형 스칼라 | 양의 duration형으로 구성된 요소를 2개 가진 벡터
사용자 지정 채우기 함수를 위한 간격 윈도우 길이로, 양의 정수 스칼라, 양의 정수로 구성된 요소를 2개 가진 벡터, 양의 duration형 스칼라 또는 양의 duration형으로 구성된 요소를 2개 가진 벡터로 지정됩니다. 간격 윈도우는 샘플 점을 기준으로 정의됩니다.
채우기 방법에 대한 함수 핸들 fillfun
을 지정할 때 gapwindow
의 값은 입력 데이터에 있는 누락값의 빈 간격 각각을 둘러싸는 고정 윈도우 길이를 나타냅니다. 해당 윈도우의 값을 사용하여 fillfun
으로 채우기 값이 계산됩니다. 예를 들어, 디폴트 샘플 점 t = 1:10
과 데이터 A = [10 20 NaN NaN 50 60 70 NaN 90 100]
에 대해 윈도우 길이 gapwindow = 3
이면 채우기 값을 계산하기 위해 fillfun
이 연산을 수행하는 첫 번째 간격 윈도우는 [20 NaN NaN 50]
으로 지정됩니다. fillfun
이 연산을 수행하는 두 번째 간격 윈도우는 [70 NaN 90]
입니다.
A
가 timetable형이거나 SamplePoints
가 datetime
형 또는 duration
형 벡터로 지정된 경우 gapwindow
는 duration
형이어야 합니다.
dim
— 연산 차원
양의 정수 스칼라
연산 차원으로, 양의 정수 스칼라로 지정됩니다. 값이 지정되지 않은 경우 디폴트 값은 크기가 1이 아닌 첫 번째 배열 차원이 됩니다.
m
×n
입력 행렬 A
가 있다고 가정합니다.
fillmissing(A,method,1)
은A
의 각 열에 있는 데이터에 따라 누락값을 채우고m
×n
행렬을 반환합니다.fillmissing(A,method,2)
는A
의 각 행에 있는 데이터에 따라 누락값을 채우고m
×n
행렬을 반환합니다.
table형 또는 timetable형 입력 데이터의 경우 dim
은 지원되지 않으며 연산은 각 테이블 변수나 타임테이블 변수를 따라 개별적으로 수행됩니다.
이름-값 인수
선택적 인수 쌍을 Name1=Value1,...,NameN=ValueN
으로 지정합니다. 여기서 Name
은 인수 이름이고 Value
는 대응값입니다. 이름-값 인수는 다른 인수 뒤에 와야 하지만, 인수 쌍의 순서는 상관없습니다.
R2021a 이전 릴리스에서는 쉼표를 사용하여 각 이름과 값을 구분하고 Name
을 따옴표로 묶으십시오.
예: fillmissing(T,method,'SamplePoints',"Var1")
SamplePoints
— 샘플 점
벡터 | 테이블 변수 이름 | 스칼라 | 함수 핸들 | 테이블 vartype
첨자
샘플 점으로, 샘플 점 값으로 구성된 벡터로 지정되거나 입력 데이터가 테이블인 경우 다음 표에 나와 있는 옵션 중 하나로 지정됩니다. 샘플 점은 데이터의 x축 위치를 나타내며, 이 샘플 점은 정렬되고 고유한 요소를 가져야 합니다. 샘플 점은 균일하게 샘플링할 필요가 없습니다. 벡터 [1 2 3 ...]
이 디폴트 값입니다.
입력 데이터가 테이블이면 다음 옵션 중 하나를 사용하여 샘플 점을 테이블 변수로 지정할 수 있습니다.
인덱싱 방식 | 예제 |
---|---|
변수 이름:
|
|
변수 인덱스:
|
|
함수 핸들:
|
|
변수 유형:
|
|
참고
입력 데이터가 timetable
형인 경우에는 이 이름-값 인수가 지원되지 않습니다. 타임테이블은 행 시간값으로 구성된 벡터를 샘플 점으로 사용합니다. 다른 샘플 점을 사용하려면 행 시간값이 원하는 샘플 점을 포함하도록 타임테이블을 편집해야 합니다.
이동 윈도우는 샘플 점을 기준으로 정의됩니다. 예를 들어, t
가 입력 데이터에 해당하는 시간 벡터인 경우 fillmissing(rand(1,10),'movmean',3,'SamplePoints',t)
는 t(i)-1.5
~ t(i)+1.5
범위의 시간 구간을 나타내는 윈도우를 가집니다.
샘플 점 벡터의 데이터형이 datetime
형 또는 duration
형인 경우 이동 윈도우 길이는 duration
형이어야 합니다.
예: fillmissing([1 NaN 3 4],'linear','SamplePoints',[1 2.5 3 4])
예: fillmissing(T,'linear','SamplePoints',"Var1")
데이터형: single
| double
| datetime
| duration
DataVariables
— 연산을 수행할 테이블 변수
테이블 변수 이름 | 스칼라 | 벡터 | 셀형 배열 | pattern형 | 함수 핸들 | 테이블 vartype
첨자
연산을 수행할 테이블 변수로, 다음 표에 있는 옵션 중 하나로 지정됩니다. DataVariables
값은 입력 테이블에서 채울 변수를 나타냅니다.
테이블에서 DataVariables
로 지정되지 않은 다른 변수는 채워지지 않은 채 출력값으로 전달됩니다.
인덱싱 방식 | 예제 |
---|---|
변수 이름:
|
|
변수 인덱스:
|
|
함수 핸들:
|
|
변수 유형:
|
|
예: fillmissing(T,'linear','DataVariables',["Var1" "Var2" "Var4"])
ReplaceValues
— 값 바꾸기 표시자
true
또는 1
(디폴트 값) | false
또는 0
값 바꾸기 표시자로, A
가 테이블 또는 타임테이블이면 다음 값 중 하나로 지정됩니다.
true
또는1
— 누락된 항목을 포함하는 입력 테이블 변수를 채워진 테이블 변수로 바꿉니다.false
또는0
— 누락된 요소가 있는지 확인한 모든 테이블 변수를 입력 테이블에 추가합니다. 추가된 변수에 누락된 항목이 채워집니다.
벡터, 행렬 또는 다차원 배열 입력 데이터에는 ReplaceValues
가 지원되지 않습니다.
예: fillmissing(T,'previous','ReplaceValues',false)
EndValues
— 끝점 처리 방법
'extrap'
(디폴트 값) | 'previous'
| 'next'
| 'nearest'
| 'none'
| 스칼라
끝점 처리 방법으로, 'extrap'
, 'previous'
, 'next'
, 'nearest'
, 'none'
또는 상수 스칼라 값으로 지정됩니다. 끝점 채우기 방법은 선행 누락값과 후행 누락값을 다음 정의에 따라 처리합니다.
방법 | 설명 |
---|---|
'extrap' | method 와 동일함 |
'previous' | 누락값이 아닌 이전 값 |
'next' | 누락값이 아닌 다음 값 |
'nearest' | 누락값이 아닌 가장 가까운 값 |
'none' | 채우기 값 없음 |
스칼라 | 상수 값(숫자, duration , datetime 데이터형에만 해당) |
MissingLocations
— 알려진 누락 표시자
벡터 | 행렬 | 다차원 배열
알려진 누락 표시자로, A
와 크기가 같은 논리형 벡터, 행렬 또는 다차원 배열로 지정됩니다. 표시자 요소는 A
의 대응 위치에 누락값이 있음을 나타내는 1
(true
)이거나, 그렇지 않은 경우 0
(false
)일 수 있습니다.
데이터형: logical
MaxGap
— 채울 최대 간격 크기
숫자형 스칼라 | duration
형 스칼라 | calendarDuration
형 스칼라
채울 최대 간격 크기로, 숫자형 스칼라, duration
형 스칼라 또는 calendarDuration
형 스칼라로 지정됩니다. 여기서 간격은 연속된 누락값들로 구성된 군집으로, 그 크기는 해당 간격을 둘러싸는 누락되지 않은 값 사이의 거리입니다. 간격 크기는 샘플 점을 기준으로 계산됩니다. 채울 최대 간격 크기보다 작거나 같은 빈 간격은 채워지고 이보다 큰 빈 간격은 채워지지 않습니다.
예를 들어, 디폴트 샘플 점 [1 2 3 4]
를 사용하는 벡터 y = [25 NaN NaN 100]
이 있다고 가정하겠습니다. 이 벡터 내의 빈 간격 크기는 샘플 점에서 4 - 1 = 3
으로 계산되므로 MaxGap
값 2
는 누락값을 변경하지 않고 그대로 두고 MaxGap
값 3
은 누락값을 채웁니다.
데이터의 시작 또는 끝에 있는 누락값의 경우:
입력 데이터의 시작이나 끝에 있는 단 하나의 누락값은 그 빈 간격 크기가 0이고 항상 채워집니다.
입력 데이터의 시작이나 끝에 있는 누락값들로 구성된 군집은 누락되지 않은 값으로 완전하게 둘러싸이지 않으므로 그 빈 간격 크기는 가장 가까운 기존 샘플 점을 사용하여 계산됩니다. 디폴트 샘플 점
1:N
의 경우, 이러한 계산은 동일한 군집이 데이터의 중간에 있는 경우보다 1만큼 작은 빈 간격 크기를 생성합니다.
Distance
— 거리 함수
'euclidean'
(디폴트 값) | 'seuclidean'
| 함수 핸들
최근접이웃 행을 찾을 때 사용할 거리 함수로, 'euclidean'
(유클리드 거리), 'seuclidean'
(스케일링된 유클리드 거리) 또는 거리 함수에 대한 함수 핸들로 지정됩니다.
거리 함수에 대한 함수 핸들을 지정하는 경우 함수는 다음 조건을 충족해야 합니다.
함수는 두 개의 입력값을 받아야 합니다.
함수의 첫 번째 입력값은 비교할 2개의 벡터를 포함하는 2행 행렬, 테이블 또는 타임테이블이어야 합니다.
함수의 두 번째 입력값은 벡터의 누락값의 위치를 나타내는 논리형 행렬이어야 합니다. 두 번째 입력값은
~
로 지정하여 무시할 수 있습니다.함수는 거리를
double
형의 실수형 스칼라 값으로 반환해야 합니다.
예: fillmissing(A,'knn','Distance',@(x,~) sum(abs(diff(x)),'omitmissing'))
출력 인수
F
— 채워진 데이터
벡터 | 행렬 | 다차원 배열 | 테이블 | 타임테이블
채워진 데이터로, 벡터, 행렬, 다차원 배열, table형 또는 timetable형으로 반환됩니다.
ReplaceValues
의 값이 false
가 아닌 경우 F
는 A
와 크기가 동일합니다. ReplaceValues
값이 false
이면 너비 F
는 입력 데이터 너비와 지정된 데이터 변수 개수의 합입니다.
TF
— 채워진 데이터 표시자
벡터 | 행렬 | 다차원 배열
채워진 데이터 표시자로, 벡터, 행렬 또는 다차원 배열로 반환됩니다. TF
는 논리형 배열로, 1
(true
)은 이전에 누락된 F
의 채워진 요소 위치에 해당하고 0
(false
)은 변경되지 않은 요소의 위치에 해당합니다.
TF
는 F
와 크기가 동일합니다.
데이터형: logical
팁
구조체형 배열 또는 문자형이 아닌 벡터로 구성된 셀형 배열인 입력 데이터의 경우,
fillmissing
은 어떤 항목도 채우지 않습니다. 구조체형 배열에서 누락된 항목을 채우려면,structfun
함수를 사용하여 구조체의 각 필드에fillmissing
을 적용합니다. 문자형이 아닌 벡터로 이루어진 셀형 배열에서 누락된 항목을 채우려면,cellfun
함수를 사용하여 셀형 배열의 각 셀에fillmissing
을 적용합니다.
확장 기능
tall형 배열
메모리에 담을 수 없을 정도로 많은 행을 가진 배열을 계산할 수 있습니다.
사용법 관련 참고 및 제한 사항:
'spline'
방법과'makima'
방법은 지원되지 않습니다.함수 핸들 채우기 방법은 지원되지 않습니다.
'knn'
채우기 방법 및Distance
이름-값 인수는 지원되지 않습니다.MaxGap
,SamplePoints
및MissingLocations
이름-값 인수는 지원되지 않습니다.DataVariables
이름-값 인수에는 함수 핸들을 지정할 수 없습니다.EndValues
이름-값 인수에는'extrap'
만 지정할 수 있습니다.구문
fillmissing(A,movmethod,window)
는A
가 tall형 타임테이블인 경우에는 지원되지 않습니다.구문
fillmissing(A,'constant',v)
에서v
에는 스칼라 값을 지정해야 합니다.구문
fillmissing(A,___)
는A
가 tall형 테이블 또는 tall형 타임테이블인 경우에는 문자형 벡터 변수를 지원하지 않습니다.
자세한 내용은 tall형 배열 항목을 참조하십시오.
C/C++ 코드 생성
MATLAB® Coder™를 사용하여 C 코드나 C++ 코드를 생성할 수 있습니다.
사용법 관련 참고 및 제한 사항:
MaxGap
이름-값 인수는 지원되지 않습니다.'makima'
옵션은 지원되지 않습니다.입력 데이터가
datetime
형 또는duration
형인 경우 지원되는 유일한 방법은'constant'
입니다.SamplePoints
값이datetime
형이거나 입력 데이터가datetime
형 행 시간값을 갖는 타임테이블인 경우,'constant'
,'movmean'
,'movmedian'
방법만 지원됩니다.fillmethod
인수에 대한 함수 핸들 입력값은 지원되지 않습니다.'knn'
채우기 방법 및Distance
이름-값 인수는 지원되지 않습니다.categorical형 입력 데이터의 경우 채우기 상수는 데이터의 범주 중 하나와 일치해야 합니다.
스레드 기반 환경
MATLAB®의 backgroundPool
을 사용해 백그라운드에서 코드를 실행하거나 Parallel Computing Toolbox™의 ThreadPool
을 사용해 코드 실행 속도를 높일 수 있습니다.
이 함수는 스레드 기반 환경을 완전히 지원합니다. 자세한 내용은 스레드 기반 환경에서 MATLAB 함수 실행하기 항목을 참조하십시오.
GPU 배열
Parallel Computing Toolbox™를 사용해 GPU(그래픽스 처리 장치)에서 실행하여 코드 실행 속도를 높일 수 있습니다.
사용법 관련 참고 및 제한 사항:
'pchip'
채우기 방법은 지원되지 않습니다.이동 윈도우 채우기 방법
'movmean'
과'movmedian'
에는SamplePoints
이름-값 인수가 지원되지 않습니다.'knn'
채우기 방법 및Distance
이름-값 인수는 지원되지 않습니다.
자세한 내용은 GPU에서 MATLAB 함수 실행하기 (Parallel Computing Toolbox) 항목을 참조하십시오.
분산 배열
Parallel Computing Toolbox™를 사용하여 대규모 배열을 클러스터의 결합된 메모리에 걸쳐 분할할 수 있습니다.
사용법 관련 참고 및 제한 사항:
'knn'
채우기 방법 및Distance
이름-값 인수는 지원되지 않습니다.
자세한 내용은 분산 배열을 사용하여 MATLAB 함수 실행 (Parallel Computing Toolbox) 항목을 참조하십시오.
버전 내역
R2016b에 개발됨R2023a: 가장 가까운 행의 대응값으로 채우기
'knn'
방법을 사용하여, 가장 가까운 행의 대응값으로 누락된 요소를 채웁니다. 선택적으로 k
값을 지정하여, k
최근접 행의 대응값에 대한 평균으로 누락된 요소를 채울 수 있습니다.
또한 Distance
이름-값 인수를 사용하여, 행 간의 거리를 측정할 사용자 지정 함수를 지정할 수 있습니다.
R2022b: 문자형 배열은 표준 누락값을 갖지 않음
문자형 배열은 표준 누락값에 대한 디폴트 정의를 갖지 않습니다. 따라서 fillmissing
은 빈 문자형 배열 요소(' '
)를 누락되지 않은 것으로 처리합니다. 예를 들어, fillmissing(['a'; ' '],'previous')
는 ['a'; ' ']
을 반환합니다. 이전에는 ['a'; 'a']
를 반환했습니다.
빈 문자형 배열 요소를 누락된 것으로 처리하려면 MissingLocations
이름-값 인수를 사용합니다. 예를 들어, TF = ismissing(['a'; ' '],' ')
를 사용하여 빈 문자형 배열 요소를 찾은 다음 F = fillmissing(['a'; ' '],'previous',MissingLocations=TF)
에서와 같이 알려진 누락 표시자를 지정합니다.
R2022a: 채워진 값 추가
table형 또는 timetable형 입력 데이터의 경우 누락된 요소가 있는지 확인한 모든 테이블 변수를 입력 테이블에 추가합니다. 추가된 변수에 누락된 항목이 채워집니다. ReplaceValues
이름-값 인수를 false
로 설정하여 테이블 변수를 바꾸지 않고 추가합니다.
R2021b: 샘플 점을 테이블 변수로 지정
table형 입력 데이터의 경우, SamplePoints
이름-값 인수를 사용하여 샘플 점을 테이블 변수로 지정합니다.
R2021a: 사용자 지정 채우기 방법 지정하기
fillfun
을 함수 핸들로 지정하여 사용자 지정 메서드로 누락값을 채웁니다.
참고 항목
함수
fillmissing2
|ismissing
|standardizeMissing
|anymissing
|rmmissing
|filloutliers
|isnan
|missing
|isnat
|smoothdata
라이브 편집기 작업
앱
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)