# finding elements in a matrix`

5 views (last 30 days)
Ananya Malik on 16 Aug 2016
Edited: Thorsten on 16 Aug 2016
I have a a matrix A= [1 3 10; 1 8 10; 2 4 9] and an array x = [2 9]. i want to check if x is present in a single row of A. In this case it is true, so continue. Can anyone help? TIA.

Azzi Abdelmalek on 16 Aug 2016
Edited: Azzi Abdelmalek on 16 Aug 2016
A= [1 3 10; 1 8 10; 2 4 9]
x=[ 2 9]
for k=1:size(A,1)
idx=all(ismember(x,A(k,:)));
if idx
break
end
end
idx
Ananya Malik on 16 Aug 2016
Edited: Ananya Malik on 16 Aug 2016
Thanks @Azzi Abdelmalek for the solution. However I have one more query. If I have X=[1 2; 3 9; 3 10; 2 4] and A. If I run the code
for i = 1: length(X(:,1))
x= X(i,:);
for k=1:size(A,1)
idx=all(ismember(x,A(k,:)));
if idx
break;
else
s=[s; x 0];
end
end
end
The output I get is s=[1 2 0;1 2 0; 1 2 0;3 9 0; 3 9 0;3 9 0;2 4 0;2 4 0]. The result i want is s= [1 2 0; 3 9 0].

Thorsten on 16 Aug 2016
Edited: Thorsten on 16 Aug 2016
X=[1 2; 3 9; 3 10; 2 4]
x = [2 9];
X = X(any(ismember(X, x),2), :);
s = [X zeros(size(X,1), 1)];
You also keep the last row, because it contains a 2, a number present in x.

### Categories

Find more on Resizing and Reshaping Matrices in Help Center and File Exchange

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!