Обработайте данные путем маркировки строк неизвестными значениями
[y,ps] = fixunknowns(X)
[y,ps] = fixunknowns(X,FP)
Y = fixunknowns('apply',X,PS)
X = fixunknowns('reverse',Y,PS)
name = fixunknowns('name')
fp = fixunknowns('pdefaults')
pd = fixunknowns('pdesc')
fixunknowns('pcheck',fp)
fixunknowns матрицы процессов, заменяя каждую строку, содержащую неизвестные значения (представленный NaN) с двумя строками информации.
Первая строка содержит исходную строку с NaN значения заменяются средним значением строки. Вторая строка содержит 1 и 0 значений, указывая, какие значения в первой строке были известны или неизвестны, соответственно.
[y,ps] = fixunknowns(X) берет эти входные параметры,
X |
|
и возвращается
Y |
|
PS | Настройки процесса, которые позволяют сопоставимую обработку значений |
[y,ps] = fixunknowns(X,FP) берет пустой struct FP из параметров.
Y = fixunknowns('apply',X,PS) возвращает Y, учитывая X и настройки PS.
X = fixunknowns('reverse',Y,PS) возвращает X, учитывая Y и настройки PS.
name = fixunknowns('name') возвращает имя этого метода процесса.
fp = fixunknowns('pdefaults') возвращает структуру параметра процесса по умолчанию.
pd = fixunknowns('pdesc') возвращает описания параметра процесса.
fixunknowns('pcheck',fp) выдает ошибку, если какой-либо параметр недопустим.
Вот то, как отформатировать матрицу со смесью известных и неизвестных значений в ее второй строке:
x1 = [1 2 3 4; 4 NaN 6 5; NaN 2 3 NaN] [y1,ps] = fixunknowns(x1)
Затем примените те же настройки обработки к новым значениям:
x2 = [4 5 3 2; NaN 9 NaN 2; 4 9 5 2]
y2 = fixunknowns('apply',x2,ps)
Инвертируйте обработку y1 получить x1 снова.
x1_again = fixunknowns('reverse',y1,ps)