Extract columns from matrix based on a vectors values
Afficher commentaires plus anciens
I want to extract the columns of a matrix A (mxn), based on a vector B's values into a new matrix C, meaning:
Which also should be dependent on B's dimensions (1xm):
For example:
A=[1,1,1,0;
2,1,0,1];
B=[3,4];
Then C should be:
C=[1,0;
0,1].
I want this to work for any dimensions of n and m.
I have tried:
C=A(:,B(1,1):1:B(1,size(B,2)))
but it doesn't work for B=[3,1] since it takes column by column.
Thanks!
Réponse acceptée
Plus de réponses (1)
>> A=[1,1,1,0;
2,1,0,1];
B=[3,4];
>> A(:,B)
ans =
1 0
0 1
>> B=[3,1];
>> A(:,B)
ans =
1 1
0 2
>>
meets the description of the vector B.
If you mean for B to be all columns from B(1):B(2) inclusive, then you have to be more explicit in how you write the expression:
>> A(:,B(1):sign(diff(B)):B(2))
ans =
1 1 1
0 1 2
>>
This will require that B always be a 2-vector and B(1)~=B(2).
1 commentaire
Tom Hagéus
le 6 Nov 2020
Catégories
En savoir plus sur Creating and Concatenating Matrices 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!