У меня есть матрица, которые содержат числовые значения (с плавающей точкой) и Категориальных значения (Int)Поиск столбцов, которые содержат как целые числа и NaN
как
A = 1 NaN 2.2 3.2 4
NaN 7.9 5.1 NaN 5
3 5.5 NaN 4.1 NaN
и я хотел бы, чтобы разбить его на матрицы ; один содержит значение Int, а другие содержат значение с плавающей точкой, как
it = 1 4
NaN 5
3 NaN
и
flt = NaN 2.2 3.2
7.9 5.1 NaN
5.5 NaN 4.1
я использовать следующий код
int_cols = all(round(A)==A, 1); %// logical indexing into integer columns
it = A(:,int_cols);
flt = A(:,~int_cols);
Однако, NaN не равно NaN так он появляется в матрице flt и it = [].
Есть ли какая-нибудь функция, которая может вам помочь?
Возможно, [ 'isnan'] (http://www.mathworks.com/help/symbolic/isnan.html)? – whrrgarbl
Как насчет числовых значений типа '5.0'? В глазах Matlab это то же самое, что и '5', если вы храните их в одном и том же двойном (float) массиве. – thewaywewalk