Azzera filtri
Azzera filtri

Extracting a matrix by row and column from a large matrix

1 visualizzazione (ultimi 30 giorni)
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 Commenti
Bob Thompson
Bob Thompson il 21 Mag 2019
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
Adam Danz il 21 Mag 2019
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

Accedi per commentare.

Risposta accettata

Adam Danz
Adam Danz il 21 Mag 2019
Modificato: Adam Danz il 21 Mag 2019
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.

Più risposte (0)

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by