Main Content

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

fillmissing

누락된 요소 채우기

설명

예제

F = fillmissing(A,'constant',v)는 배열이나 테이블의 누락된 요소를 상수 값 v로 채웁니다. A가 행렬이거나 다차원 배열인 경우 v는 스칼라 또는 벡터일 수 있습니다. v가 벡터이면 각 요소는 A의 대응하는 열의 채우기 값을 지정합니다. A가 테이블 또는 타임테이블이면 v도 각각의 테이블 변수에 대한 채우기 값이 배열 요소에 포함된 셀형 배열일 수 있습니다.

누락값은 다음과 같이 A의 데이터형에 따라 정의됩니다.

  • NaNdouble형, single형, duration형, calendarDuration

  • NaTdatetime

  • <missing>string

  • <undefined>categorical

  • {''} — 문자형 벡터로 구성된 cell

A가 테이블이면 각 변수의 데이터형에 따라 해당 변수의 누락값이 정의됩니다.

예제

F = fillmissing(A,method)method로 지정된 방법을 사용하여 누락된 요소를 채웁니다. 예를 들어, fillmissing(A,'previous')는 누락된 요소를 A의 누락되지 않은 이전 요소로 채웁니다.

예제

F = fillmissing(A,movmethod,window)는 윈도우 길이가 window인 이동 윈도우 평균 또는 중앙값을 사용하여 누락된 항목을 채웁니다. 예를 들어, fillmissing(A,'movmean',5)는 윈도우 길이 5를 사용한 이동 평균으로 데이터를 채웁니다.

예제

F = fillmissing(A,'knn')은 행 간의 쌍별 유클리드 거리를 기준으로 계산된 최근접이웃 행의 대응값으로 누락된 요소를 채웁니다.

F = fillmissing(A,'knn',k)는 행 간의 쌍별 유클리드 거리를 기준으로 계산된 k 최근접이웃 행의 대응값에 대한 평균으로 누락된 요소를 채웁니다. 예를 들어, fillmissing(A,'knn',5)는 최근접이웃 행 5개의 대응값에 대한 평균으로 A의 누락된 요소를 채웁니다.

예제

F = fillmissing(A,fillfun,gapwindow)는 함수 핸들 fillfun으로 지정된 사용자 지정 방법과 채우기 값을 계산할 각각의 빈 간격을 둘러싸는 고정 윈도우를 사용하여 누락된 항목들의 빈 간격을 채웁니다. fillfun은 입력 인수 xs, ts, tq가 있어야 하며, 각각의 인수는 벡터로서 xs는 길이 gapwindow만큼의 샘플 데이터를, ts는 길이 gapwindow만큼의 샘플 데이터 위치를, tq는 누락 데이터 위치를 포함합니다. tstq의 위치는 샘플 점 벡터의 일부입니다.

예제

F = fillmissing(___,dim)은 위에 열거된 구문의 입력 인수 조합 외에 연산을 수행할 A의 차원을 지정합니다. 기본적으로 fillmissing은 크기가 1이 아닌 첫 번째 차원을 따라 연산을 수행합니다. 예를 들어, A가 행렬인 경우 fillmissing(A,2)는 누락된 데이터를 한 행씩 차례로 채우면서 A의 열 전체에 대해 연산을 수행합니다.

예제

F = fillmissing(___,Name,Value)는 하나 이상의 이름-값 인수를 사용하여 누락값을 채우기 위한 추가 파라미터를 지정합니다. 예를 들어, t가 시간 값의 벡터인 경우 fillmissing(A,'linear','SamplePoints',t)t의 시간을 기준으로 A의 데이터를 보간합니다.

예제

또한 [F,TF] = fillmissing(___)은 이전에 누락되었던 F에 채워진 항목의 위치를 나타내는 논리형 배열 TF를 반환합니다.

예제

모두 축소

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 값을 포함하는 2×2 행렬을 만듭니다. 첫 번째 열과 두 번째 열의 NaN을 각각 1001000으로 채웁니다.

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);

ANaN 값을 넣습니다.

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')

Figure contains an axes object. The axes object contains 2 objects of type scatter. These objects represent 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인 이동 중앙값을 사용하여 ANaN 값을 바꾸고 원래 데이터와 채워진 데이터를 플로팅합니다.

F = fillmissing(A,'movmedian',10);  
plot(x,F,'.-') 
hold on
plot(x,A,'.-')
legend('Original Data','Filled Data')

Figure contains an axes object. The axes object contains 2 objects of type line. These objects represent 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)

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

로컬 함수 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))

Figure contains an axes object. The axes object contains 2 objects of type scatter.

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   

ATemperature 변수와 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

입력 인수

모두 축소

입력 데이터로, 벡터, 행렬, 다차원 배열, 문자형 벡터로 구성된 셀형 배열, table형 또는 timetable형으로 지정됩니다.

  • A가 timetable형이면 테이블 값만 채워집니다. 행 시간값으로 구성된 관련 벡터에 NaT 값이나 NaN 값이 포함되어 있으면 fillmissing은 오류를 생성합니다. 행 시간값은 고유해야 하며 오름차순으로 나열되어야 합니다.

  • A가 셀형 배열이거나 셀형 배열 변수를 갖는 table형이면 fillmissing은 셀형 배열에 문자형 벡터가 포함된 경우에만 누락된 값을 채웁니다.

채우기 상수로, 스칼라, 벡터 또는 셀형 배열로 지정됩니다.

  • A가 행렬 또는 다차원 배열일 때 v는 벡터일 수 있으며, 그럴 경우 각 연산 차원에 대한 서로 다른 채우기 값을 나타냅니다. v의 길이는 연산 차원의 길이와 같아야 합니다.

  • A가 테이블 또는 타임테이블일 때 v는 채우기 값으로 구성된 셀형 배열일 수 있으며, 그럴 경우 각 변수에 대한 서로 다른 채우기 값을 나타냅니다. 셀형 배열의 요소 개수는 테이블의 변수 개수와 일치해야 합니다.

채우기 방법으로, 다음 값 중 하나로 지정됩니다.

방법설명
'previous'누락값이 아닌 이전 값
'next'누락값이 아닌 다음 값
'nearest'x축에 의해 정의된, 누락값 아닌 가장 가까운 값
'linear'누락값이 아닌 인접 값들의 선형 보간(숫자, duration, datetime 데이터형에만 해당)
'spline'조각별 3차 스플라인 보간(숫자, duration, datetime 데이터형에만 해당)
'pchip'형태 보존 조각별 3차 스플라인 보간(숫자, duration, datetime 데이터형에만 해당)
'makima'아키마 3차 에르미트 다항식 변형 보간(숫자, durationdatetime 데이터형에만 해당)

누락된 데이터를 채울 이동 방법으로, 다음 값 중 하나로 지정됩니다.

방법설명
'movmean'길이가 window인 윈도우에 걸친 이동평균(숫자 데이터형의 경우에만 해당)
'movmedian'길이가 window인 윈도우에 걸친 이동 중앙값(숫자 데이터형의 경우에만 해당)

이동 방법의 윈도우 길이로, 양의 정수 스칼라, 양의 정수로 구성된 요소를 2개 가진 벡터, 양의 duration형 스칼라 또는 양의 duration형으로 구성된 요소를 2개 가진 벡터로 지정됩니다. 윈도우는 샘플 점을 기준으로 정의됩니다.

window가 양의 정수 스칼라인 경우 윈도우는 현재 요소를 중심으로 하며, window-1개의 인접 요소를 가집니다. window가 짝수이면 윈도우의 중심은 현재 요소 및 이전 요소가 됩니다.

window가 양의 정수로 구성된 요소를 2개 가진 벡터 [b f]인 경우 윈도우에는 현재 요소, 현재 요소의 역방향으로 b개 요소, 그리고 현재 요소의 정방향으로 f개 요소가 들어 있습니다.

A가 timetable형이거나 SamplePointsdatetime형 또는 duration형 벡터로 지정된 경우 창은 duration형이어야 합니다.

'knn' 방법으로 평균을 구하기 위한 최근접이웃 수로, 양의 정수 스칼라로 지정됩니다.

예: @(xs,ts,tq) myfun(xs,ts,tq)

사용자 지정 채우기 방법으로, 함수 핸들로 지정됩니다. 유효한 함수 핸들은 다음 세 개의 입력 인수를 포함해야 합니다.

입력 인수설명
xs채우기에 사용되는 데이터 값을 포함하는 벡터. xs의 길이는 지정된 윈도우의 길이와 같아야 합니다.
ts채우기에 사용되는 값의 위치를 포함하는 벡터. ts의 길이는 지정된 윈도우의 길이와 같아야 합니다. ts는 샘플 점 벡터의 일부입니다.
tq누락값의 위치를 포함하는 벡터. tq는 샘플 점 벡터의 일부입니다.

함수는 tq와 길이가 같은 스칼라 또는 벡터를 반환해야 합니다.

사용자 지정 채우기 함수를 위한 간격 윈도우 길이로, 양의 정수 스칼라, 양의 정수로 구성된 요소를 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형이거나 SamplePointsdatetime형 또는 duration형 벡터로 지정된 경우 gapwindowduration형이어야 합니다.

연산 차원으로, 양의 정수 스칼라로 지정됩니다. 값이 지정되지 않은 경우 디폴트 값은 크기가 1이 아닌 첫 번째 배열 차원이 됩니다.

m×n 입력 행렬 A가 있다고 가정합니다.

  • fillmissing(A,method,1)A의 각 열에 있는 데이터에 따라 누락값을 채우고 m×n 행렬을 반환합니다.

    fillmissing(A,method,1) column-wise operation

  • fillmissing(A,method,2)A의 각 행에 있는 데이터에 따라 누락값을 채우고 m×n 행렬을 반환합니다.

    fillmissing(A,method,2) row-wise operation

table형 또는 timetable형 입력 데이터의 경우 dim은 지원되지 않으며 연산은 각 테이블 변수나 타임테이블 변수를 따라 개별적으로 수행됩니다.

이름-값 인수

선택적 인수 쌍을 Name1=Value1,...,NameN=ValueN으로 지정합니다. 여기서 Name은 인수 이름이고 Value는 대응값입니다. 이름-값 인수는 다른 인수 뒤에 와야 하지만, 인수 쌍의 순서는 상관없습니다.

R2021a 이전 릴리스에서는 쉼표를 사용하여 각 이름과 값을 구분하고 Name을 따옴표로 묶으십시오.

예: fillmissing(T,method,'SamplePoints',"Var1")

데이터 옵션

모두 축소

샘플 점으로, 샘플 점 값으로 구성된 벡터로 지정되거나 입력 데이터가 테이블인 경우 다음 표에 나와 있는 옵션 중 하나로 지정됩니다. 샘플 점은 데이터의 x축 위치를 나타내며, 이 샘플 점은 정렬되고 고유한 요소를 가져야 합니다. 샘플 점은 균일하게 샘플링할 필요가 없습니다. 벡터 [1 2 3 ...]이 디폴트 값입니다.

입력 데이터가 테이블이면 다음 옵션 중 하나를 사용하여 샘플 점을 테이블 변수로 지정할 수 있습니다.

인덱싱 방식예제

변수 이름:

  • string형 스칼라 또는 문자형 벡터

  • "A" 또는 'A'A라는 변수

변수 인덱스:

  • 테이블에서의 변수 위치를 나타내는 인덱스 번호

  • 논리형 벡터. 일반적으로 이 벡터는 변수의 개수와 길이가 같지만 후행 0 값 또는 false 값을 생략할 수 있음

  • 3 — 테이블의 세 번째 변수

  • [false false true] — 세 번째 변수

함수 핸들:

  • 테이블 변수를 입력값으로 받고 논리형 스칼라를 반환하는 함수 핸들

  • @isnumeric — 숫자형 값을 포함하는 하나의 변수

변수 유형:

  • 지정된 유형의 변수 하나를 선택하는 vartype 첨자

  • vartype("numeric") — 숫자형 값을 포함하는 하나의 변수

참고

입력 데이터가 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 값은 입력 테이블에서 채울 변수를 나타냅니다.

테이블에서 DataVariables로 지정되지 않은 다른 변수는 채워지지 않은 채 출력값으로 전달됩니다.

인덱싱 방식예제

변수 이름:

  • string형, 문자형 벡터 또는 셀형 배열

  • pattern 객체

  • "A" 또는 'A'A라는 변수

  • ["A","B"] 또는 {'A','B'}AB라는 두 개의 변수

  • "Var"+digitsPattern(1)"Var" 다음에 하나의 숫자가 오는 이름을 갖는 변수

변수 인덱스:

  • 테이블에서의 변수 위치를 나타내는 인덱스 번호

  • 숫자로 구성된 벡터

  • 논리형 벡터. 일반적으로 이 벡터는 변수의 개수와 길이가 같지만 후행 0 값 또는 false 값을 생략할 수 있음

  • 3 — 테이블의 세 번째 변수

  • [2 3] — 테이블의 두 번째 변수와 세 번째 변수

  • [false false true] — 세 번째 변수

함수 핸들:

  • 테이블 변수를 입력값으로 받고 논리형 스칼라를 반환하는 함수 핸들

  • @isnumeric — 숫자형 값을 포함하는 모든 변수

변수 유형:

  • 지정된 유형의 변수를 선택하는 vartype 첨자

  • vartype("numeric") — 숫자형 값을 포함하는 모든 변수

예: fillmissing(T,'linear','DataVariables',["Var1" "Var2" "Var4"])

값 바꾸기 표시자로, A가 테이블 또는 타임테이블이면 다음 값 중 하나로 지정됩니다.

  • true 또는 1 — 누락된 항목을 포함하는 입력 테이블 변수를 채워진 테이블 변수로 바꿉니다.

  • false 또는 0 — 누락된 요소가 있는지 확인한 모든 테이블 변수를 입력 테이블에 추가합니다. 추가된 변수에 누락된 항목이 채워집니다.

벡터, 행렬 또는 다차원 배열 입력 데이터에는 ReplaceValues가 지원되지 않습니다.

예: fillmissing(T,'previous','ReplaceValues',false)

누락값 옵션

모두 축소

끝점 처리 방법으로, 'extrap', 'previous', 'next', 'nearest', 'none' 또는 상수 스칼라 값으로 지정됩니다. 끝점 채우기 방법은 선행 누락값과 후행 누락값을 다음 정의에 따라 처리합니다.

방법설명
'extrap'method와 동일함
'previous'누락값이 아닌 이전 값
'next'누락값이 아닌 다음 값
'nearest'누락값이 아닌 가장 가까운 값
'none'채우기 값 없음
스칼라상수 값(숫자, duration, datetime 데이터형에만 해당)

알려진 누락 표시자로, A와 크기가 같은 논리형 벡터, 행렬 또는 다차원 배열로 지정됩니다. 표시자 요소는 A의 대응 위치에 누락값이 있음을 나타내는 1(true)이거나, 그렇지 않은 경우 0(false)일 수 있습니다.

데이터형: logical

채울 최대 간격 크기로, 숫자형 스칼라, duration형 스칼라 또는 calendarDuration형 스칼라로 지정됩니다. 여기서 간격은 연속된 누락값들로 구성된 군집으로, 그 크기는 해당 간격을 둘러싸는 누락되지 않은 값 사이의 거리입니다. 간격 크기는 샘플 점을 기준으로 계산됩니다. 채울 최대 간격 크기보다 작거나 같은 빈 간격은 채워지고 이보다 큰 빈 간격은 채워지지 않습니다.

예를 들어, 디폴트 샘플 점 [1 2 3 4]를 사용하는 벡터 y = [25 NaN NaN 100]이 있다고 가정하겠습니다. 이 벡터 내의 빈 간격 크기는 샘플 점에서 4 - 1 = 3으로 계산되므로 MaxGap2는 누락값을 변경하지 않고 그대로 두고 MaxGap3은 누락값을 채웁니다.

데이터의 시작 또는 끝에 있는 누락값의 경우:

  • 입력 데이터의 시작이나 끝에 있는 단 하나의 누락값은 그 빈 간격 크기가 0이고 항상 채워집니다.

  • 입력 데이터의 시작이나 끝에 있는 누락값들로 구성된 군집은 누락되지 않은 값으로 완전하게 둘러싸이지 않으므로 그 빈 간격 크기는 가장 가까운 기존 샘플 점을 사용하여 계산됩니다. 디폴트 샘플 점 1:N의 경우, 이러한 계산은 동일한 군집이 데이터의 중간에 있는 경우보다 1만큼 작은 빈 간격 크기를 생성합니다.

최근접이웃 행을 찾을 때 사용할 거리 함수로, 'euclidean'(유클리드 거리), 'seuclidean'(스케일링된 유클리드 거리) 또는 거리 함수에 대한 함수 핸들로 지정됩니다.

거리 함수에 대한 함수 핸들을 지정하는 경우 함수는 다음 조건을 충족해야 합니다.

  • 함수는 두 개의 입력값을 받아야 합니다.

  • 함수의 첫 번째 입력값은 비교할 2개의 벡터를 포함하는 2행 행렬, 테이블 또는 타임테이블이어야 합니다.

  • 함수의 두 번째 입력값은 벡터의 누락값의 위치를 나타내는 논리형 행렬이어야 합니다. 두 번째 입력값은 ~로 지정하여 무시할 수 있습니다.

  • 함수는 거리를 double형의 실수형 스칼라 값으로 반환해야 합니다.

예: fillmissing(A,'knn','Distance',@(x,~) sum(abs(diff(x)),'omitmissing'))

출력 인수

모두 축소

채워진 데이터로, 벡터, 행렬, 다차원 배열, table형 또는 timetable형으로 반환됩니다.

ReplaceValues의 값이 false가 아닌 경우 FA와 크기가 동일합니다. ReplaceValues 값이 false이면 너비 F는 입력 데이터 너비와 지정된 데이터 변수 개수의 합입니다.

채워진 데이터 표시자로, 벡터, 행렬 또는 다차원 배열로 반환됩니다. TF는 논리형 배열로, 1(true)은 이전에 누락된 F의 채워진 요소 위치에 해당하고 0(false)은 변경되지 않은 요소의 위치에 해당합니다.

TFF와 크기가 동일합니다.

데이터형: logical

  • 구조체형 배열 또는 문자형이 아닌 벡터로 구성된 셀형 배열인 입력 데이터의 경우, fillmissing은 어떤 항목도 채우지 않습니다. 구조체형 배열에서 누락된 항목을 채우려면, structfun 함수를 사용하여 구조체의 각 필드에 fillmissing을 적용합니다. 문자형이 아닌 벡터로 이루어진 셀형 배열에서 누락된 항목을 채우려면, cellfun 함수를 사용하여 셀형 배열의 각 셀에 fillmissing을 적용합니다.

확장 기능

버전 내역

R2016b에 개발됨

모두 확장