How to extract rows based on column values in a matrix?
Afficher commentaires plus anciens
I am working with data that is in a 152867x2 matrix. The first column contains one of three values ranging from 1-3. The second column, however, has a unique value for each row (see example data below). I would like to know how I can write a program that can extract 3 matrices according to the value of the first column (see example output). I'm new to MATLAB, so explicit instructions would be fantastic. Thanks.
Example Data
3, 0.1234
1, 0.1345
1, 0.1456
2, 0.1567
1, 0.1678
1, 0.1789
Desired Output - Three Matrices
1) 3, 0.1234
2) 2, 0.1567
3) 1, 0.1345
1, 0.1456
1, 0.1678
1, 0.1789
2 commentaires
Kevin Maakomane
le 19 Août 2022
extract=data(row_nu,:)
or
tranpose data using ' operator and extract column wise
baby
le 20 Sep 2022
great, thank you, works for me as well.
Réponse acceptée
Plus de réponses (1)
This wasn't an option when the question was asked originally but depending what you're trying to do with those "3 matrices", using some of the functions in the 'Grouping and Binning Data' section on this documentation page may be useful. For example, to compute the mean of values in the second column that have the same value in the first column:
A = [3, 0.1234;
1, 0.1345;
1, 0.1456;
2, 0.1567;
1, 0.1678;
1, 0.1789];
G = groupsummary(A, A(:, 1), @mean)
Catégories
En savoir plus sur Matrix Indexing dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!