Create a new matrix

1 view (last 30 days)
Yamina chbak
Yamina chbak on 18 Apr 2022
Commented: Yamina chbak on 12 May 2022
Let A a matrix and B a vector defined by :
A=[ 4 2
7 4
3 5
6 8
8 1];
B= [4 6 7 8];
I wish to know how to create a new matrix C which is a part of matrix A but necessary contain an element of the vector B, given by
C = [ 7 4
6 8];
If anyone could help , I'd greaty appreciate it.
  2 Comments
Sam Chak
Sam Chak on 18 Apr 2022
Sounds like an IQ puzzle.
What is the governing rule for the contruction of Matrix ?
A brief glance at Matrix shows that:
C = [A(2,:); A(4,:)]

Sign in to comment.

Accepted Answer

Bruno Luong
Bruno Luong on 18 Apr 2022
A=[ 4 2
7 4
3 5
6 8
8 1];
B= [4 6 7 8];
C = A(all(ismember(A,B),2),:)
C = 2×2
7 4 6 8
  4 Comments
Bruno Luong
Bruno Luong on 12 May 2022
Edited: Bruno Luong on 12 May 2022
This code select the first two matched if there is more than 2 (like the last row of A):
A=[ 4 2 5
7 4 3
3 5 1
6 8 1];
B=[5 8 2 6 1];
At = A.';
tf = ismember(At,B);
tf = tf & cumsum(tf,1)<=2;
C = reshape(At(tf),2,[]).'
C = 3×2
2 5 5 1 6 8
Yamina chbak
Yamina chbak on 12 May 2022
Yes, thanks you @Bruno Luong I understand this code. Thanks you again

Sign in to comment.

More Answers (0)

Products


Release

R2018b

Community Treasure Hunt

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

Start Hunting!