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 件のコメント

Sam Chak
Sam Chak 2022 年 4 月 18 日
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,:)]
Walter Roberson
Walter Roberson 2022 年 4 月 18 日
C = A([2 4],:)

サインインしてコメントする。

 採用された回答

Bruno Luong
Bruno Luong 2022 年 4 月 18 日

0 投票

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 件のコメント

Yamina chbak
Yamina chbak 2022 年 4 月 18 日
Yees, It worked. Thanks!
Yamina chbak
Yamina chbak 2022 年 5 月 12 日
Hi @Bruno Luong. I like your answer and I would like to learn from you. If you can help, I have an question about this problem but in the case of the matix A has 3 or 6 column , for example:
A=[ 4 2 5
7 4 3
3 5 1
6 8 1];
I wish to learn how to create a new matrix C which is a part of A and necessary to have two column and contain the elements of B:
B=[5 8 2 6 1]
to get like:
C = [2 5
5 1
6 8];
I will glad if you could help me.
Bruno Luong
Bruno Luong 2022 年 5 月 12 日
編集済み: Bruno Luong 2022 年 5 月 12 日
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 2022 年 5 月 12 日
Yes, thanks you @Bruno Luong I understand this code. Thanks you again

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

製品

リリース

R2018b

Community Treasure Hunt

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

Start Hunting!

Translated by