2016-04-15 2 views
0

У меня есть таблица (csv), хранящаяся с использованием функции хранилища данных, и я хотел бы отделить столбцы целого числа (категориальные) в таблице и столбцы с плавающей точкой (числовые) в другой таблице. Я попытался следующий кодОтдельные целочисленные и другие числовые столбцы в таблице MATLAB

int_col = all(round(Data) == Data,1); 
cat_data = Data(:,int_cols); 
num_data = Data(:,~int_cols); 

но я получаю следующую ошибку

Неопределенная функция округления для ввода типа таблицы

+0

кстати, есть категорический тип вы можете использовать: http://www.mathworks.com/help/matlab/ref/categorical.html – Amro

ответ

1

Вы хотите, чтобы сначала преобразовать таблицу в массив (используя table2array) перед выполнением проверки целых значений.

t = table(rand(5,1), randi(5,5,1), 'VariableNames', {'floats', 'ints'}); 

%// Look for integer columns 
isInt = ~any(mod(table2array(t), 1)); 

%// Grab the columns that are integers 
integer_table = t(:,isInt); 

%// Grab the non-integer columns 
non_integer_table = t(:,~isInt); 
Смежные вопросы