在 MATLAB 中分隔整数列和其他数字列 table

Separate integer and other numeric columns in MATLAB table

我有一个使用数据存储函数存储的 table (csv),我想将 table 中的整数列(分类)和另一个 table 中的浮点列(数字)分开=17=]。我尝试了以下代码

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

但我收到以下错误

Undefined function round for input of type table

在执行整数值检查之前,您需要先将 table 转换为数组(使用 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);