在Matlab中找到行的索引

时间:2017-03-07 14:46:54

标签: matlab

我在matlab中存储了一个结构文件中的数据库和相应的标签文件。为了从结构中读取我的数据库矩阵到矩阵,我使用以下matlab命令:

train_data_matrix = (cat(1, train_data.f2));

train_data结构的大小为883.但是,由于最后有一些空样本,train_data_matrix的大小为833。我的问题是我有所有样本的注释。因此,注释的大小为883x1如何从注释向量中删除数据库矩阵中为空的行?

1 个答案:

答案 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);