Extracting elements from a matrix
12 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Hello,
I have a column matrix A with 50 elements and a small column matrix B with 5 elements. I would like to determine the values of the 5 indices i of A for which the value of A(i) is equal to one of the 5 elements of B.
Then there is a column matrix C with 50 elements and I would like to extract all elements of C for the indices determined above in a new matrix D (of 5 elements).
Can someone show me a good way to perform these operations?
I tried to set up a for-loop to go through every single element of A but I don't know how to express that A(i) should be equal to any of the elements of B (in the nested if-loop). Also I am not sure of the best is to save the obtained indices in a new matrix for extracting elements from C.
Many thanks!
Réponse acceptée
KSSV
le 14 Juin 2020
% Random data for demo
A = rand(50,1) ;
B = A(randperm(50,5)') ; % select five elements of A randomly
C = rand(50,1) ;
[c,ia] = ismember(A,B) ; % get the indices of B in A
D = C(c) ;
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Creating and Concatenating Matrices dans Help Center et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!