我在matlab中存储了一个结构文件中的数据库和相应的标签文件。为了从结构中读取我的数据库矩阵到矩阵,我使用以下matlab命令:
train_data_matrix = (cat(1, train_data.f2));
train_data结构的大小为883.但是,由于最后有一些空样本,train_data_matrix
的大小为833
。我的问题是我有所有样本的注释。因此,注释的大小为883x1
如何从注释向量中删除数据库矩阵中为空的行?
答案 0 :(得分:3)
您可以使用isempty
检查缺失值并将其删除
% Store data in a cell array (preserves missing values)
tmp = {train_data.f2};
% Create a logical array that is TRUE where the missing values are
toremove = cellfun(@isempty, tmp);
% Convert to an array (removes missing values as you've mentioned)
data = cat(1, tmp{:});
% Create an array of annotations (after removing the ones that are missing data)
annotations = cat(1, train_data(~toremove).annotations);