Extract columns into new variables efficently
8 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Santos García Rosado
il 21 Apr 2021
Commentato: Santos García Rosado
il 22 Apr 2021
Hi Mathwork's community,
So I have a Matrix A such as:
A= [1 1 2 2 3 3 1 1 2 2 3 3; 1 1 2 2 3 3 1 1 2 2 3 3];
And a matrix B, which is the matrix that I'd like to separate into three different variables. (Note: There will always be three variables).
B = [10 20 30 40 50 60 70 80 90 100 110 120; 1 2 3 4 5 6 7 8 9 10 11 12];
Variable1 corresponds to B positions where A values are equal to 1, Variable2 corresponds to B positions where A values are equal to 2 and Variable3 corresponds to B positions where A values are equal to 3. The expected output should be:
Variable1 =[10 20 70 80; 1 2 7 8]
Variable2 = [30 40 90 100 ; 3 4 9 10]
Variable3 = [50 60 110 120; 5 6 11 12]
Could somone please help me out?
Santos
2 Commenti
Walter Roberson
il 21 Apr 2021
What do you want to have happen for the case where the first row of A has a different value than the corresponding position in the second row of A?
Will the three unique values in A always be 1, 2, and 3, or could it be (for example) 7, 29, 31 ? Negatives? Fractions?
Risposta accettata
Jeff Miller
il 21 Apr 2021
A= [1 1 2 2 3 3 1 1 2 2 3 3; 1 1 2 2 3 3 1 1 2 2 3 3];
B = [10 20 30 40 50 60 70 80 90 100 110 120; 1 2 3 4 5 6 7 8 9 10 11 12];
type1 = A(1,:) == 1;
Variable1 = B(:,type1);
% et cetera
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Logical in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!