- A(:,4) == 2 -- Checks to see if the 4th column is equal to 2, returning a vector of true/false booleans.
- A(A(:,4)==2,9) -- That vector is then used as a logical index into A, grabbing only the rows that are true, and only the 9th column
- Then take the (natural) logarithm of those values
How can I extract numbers from a column in a matrix dependent on a number in another column ?
4 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Þorsteinn Guðmundsson
le 31 Août 2020
Commenté : Þorsteinn Guðmundsson
le 31 Août 2020
As stated I need to extract numbers from a column in the following matrix.
I want to log the numbers in column 9 into a vector only when the number in column 4 has the value 2. I tried using an if statment but that got me nowhere and it's been awhile since I have used matlab or done any coding.
Any help is greatly appreciated.
0 commentaires
Réponse acceptée
the cyclist
le 31 Août 2020
Modifié(e) : the cyclist
le 31 Août 2020
If your matrix is A, then
output = log(A(A(:,4)==2,9));
In case it is not obvious what that one line of code is going, work from the "inside out":
If you want to take the log "in place", then do this:
idx = A(:,4)==2;
A(idx,9) = log(A(idx,9));
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Get Started with MATLAB dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!