Extracting Non-Zero Values From Array and Applying to a Different Matrix
2 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Samrita Dhindsa
le 10 Juil 2018
Modifié(e) : Matt J
le 10 Juil 2018
I have two 1 x n arrays, call them p = [p_1,..., p_n] and phi = [phi_1,...,phi_n]. It is possible that p will have zero values, and I would like to extract the nonzero values into a separate array, call it workingP. At the same time, for each nonzero value p_k, I would like to include phi_k in a second new array, workingPhi.
So ultimately, I will end up with workingP = {[p_k] : p_k ~= 0} and workingPhi = {[phi_k] : p_k ~= 0} where k ranges from 1 to n.
I'm not sure how to go about this without reallocating memory over and over again.
0 commentaires
Réponse acceptée
Guillaume
le 10 Juil 2018
tokeep = p ~= 0; %logical array indicating which elements to keep
workingP = p(tokeep);
workingPhi = phi(tokeep);
0 commentaires
Voir également
Catégories
En savoir plus sur Logical 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!