比较大小不兼容的两个数据集并删除匹配数据
Comparing two datasets with incompatible sizes and deleting matching data
我的主要数据集是 65358x31 table,第一列是特定测试对象的 ID 号,其余列是该对象的数字属性(例如大小、面积)。大约有 2000 个无效的测试对象,应该从 table 中删除。无效测试对象对应的ID号单独保存在一个2000x1table中。如何找到与无效测试对象 ID 号对应的行并将其从主数据集中删除?
我已经能够在 matlab 中使用“查找”来逐行删除无效行,但由于数据集很大,我想以更系统的方式执行此操作。预先感谢您的意见。
正确的方法是使用 for 循环:
for i=1:2000
I=find(data(:,1)==invalid_data(i));
data(I,:)=[];
end
还有另一种方法,但它会在内存中创建一个大矩阵:
[I,~]=find(data(:,1)==invalid_data');
data(I,:)=[];
我的主要数据集是 65358x31 table,第一列是特定测试对象的 ID 号,其余列是该对象的数字属性(例如大小、面积)。大约有 2000 个无效的测试对象,应该从 table 中删除。无效测试对象对应的ID号单独保存在一个2000x1table中。如何找到与无效测试对象 ID 号对应的行并将其从主数据集中删除?
我已经能够在 matlab 中使用“查找”来逐行删除无效行,但由于数据集很大,我想以更系统的方式执行此操作。预先感谢您的意见。
正确的方法是使用 for 循环:
for i=1:2000
I=find(data(:,1)==invalid_data(i));
data(I,:)=[];
end
还有另一种方法,但它会在内存中创建一个大矩阵:
[I,~]=find(data(:,1)==invalid_data');
data(I,:)=[];