MATLAB: How to remove particular rows from a matrix

arraycell arraysmatlab functionmatrix manipulation

I need to remove particular row from a matrix A but only once, example:
A=[1 2 3 4; 1 2 3 4; 1 2 3 4; 1 1 1 1; 7 8 9 0]; y=[1 2 3 4; 1 1 1 1]; %the rows [1 2 3 4] in y occurs 3 times in A, I want to remove it only once
so setdiff(A,y, 'rows'); wont work.
But I need something general that works for arbitrary A and y
Thank you 🙂

Best Answer

[found, idx] = ismember(y, A, 'rows');
A(idx(found). :) = []; %delete one copy of the found ones