MATLAB: DataSet Row Deletion Issue

matrixrow deletion

Hello, I have a dataset called NO2 and vector of site IDs called SNO2. If a value in the 4th column of the data set (MonitorID) is contained in SNO2 I want to delete the entire row from the dataset. The dataset looks like this
INPUT_FID NEAR_FID DISTANCE MonitorID StationID Classification 14 18 0.137058 60711004 60712002 3
This is the code that I have written. I keep getting an error message that says the index of the matrix to remove exceeds the matrix dimensions. Thanks!
NO2=double(NO2);
for i=1:length(SNO2)
M=find(NO2(:,4)==SNO2(i))
NO2(M,:)=[]
end

Best Answer

  • You can avoid the for loop altogether:
    M = ismember(NO2(:,4),SNO2);
    NO2(M,:)=[];