MATLAB Answers

Translated by

このページのコンテンツは英語から自動翻訳されています。自動翻訳をオフにする場合は「<a class="turn_off_mt" href="#">ここ</a>」をクリックしてください。

0

Extracting a matrix by row and column from a large matrix

Tanmoyee Bhattacharya さんによって質問されました 2019 年 5 月 21 日 20:00
最新アクティビティ Adam Danz
さんによって コメントされました 2019 年 5 月 21 日 22:05
I have a matrix like
1 1 1 2000
1 1 1 2000
1 1 1 2000
2 2 2 3000
2 2 2 3000
2 2 2 3000
3 3 3 5000
3 3 3 5000
3 3 3 5000
I have another matrix
2 2 2
2 2 2
2 2 2
I want a matrix from this matrix large matrix given above
2 2 2 3000
2 2 2 3000
2 2 2 3000
Can anyone help to extract the values through matlab.I am trying throuh ismember but not working.

  2 件のコメント

Bob Nbob
2019 年 5 月 21 日 20:07
What kind of conditions are you hoping to meet, or do you literally just want any row which contains [2 2 2 3000]?
Adam Danz
2019 年 5 月 21 日 22:05
Tanmoyee Bhattacharya answer moved here
I have another matrix
2 2 2
2 2 2
2 2 2
I have to extract the 4,5,6 row and four column from the large matrix by the given matrix
2 2 2 3000
2 2 2 3000
2 2 2 3000

サインイン to comment.

タグ

1 件の回答

回答者: Adam Danz
2019 年 5 月 21 日 21:18
編集済み: Adam Danz
2019 年 5 月 21 日 21:21
 採用された回答

I changed your example matrix a bit to make sure it ignores partial pattern matches.
m = [1 1 1 2000
1 1 1 2000
1 1 1 2000
2 2 2 3000
2 2 2 3000
2 2 2 3000
3 3 3 5000
3 3 3 5000
3 3 3 5000
2 2 2 6000
2 2 2 6000
9 9 9 7000];
s = [2 2 2
2 2 2
2 2 2];
[~, rowIdx] = intersect(m,s);
mSubset = m(rowIdx+(0:size(s,1)-1),:);
Result
mSubset =
2 2 2 3000
2 2 2 3000
2 2 2 3000
Note that if there is more than 1 match it will only return the first subset match.

  0 件のコメント

サインイン to comment.



Translated by