How to map a value of a vector into column number of a matrix?

3 vues (au cours des 30 derniers jours)
Mushahid Shamim
Mushahid Shamim le 31 Jan 2018
Commenté : Jan le 1 Fév 2018
let A=[2;4;5] vector I want a matrix where all the values will be zero and the 2nd 4th and 5th element of column of 10x3 matrix will be 1.
B=[0 0 0
1 0 0
0 0 0
0 1 0
0 0 1
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0 ]

Réponse acceptée

Jan
Jan le 31 Jan 2018
A = [2, 4, 5];
B = zeros(10, 3);
idx = sub2ind(size(B), A, 1:3);
B(idx) = 1;
  4 commentaires
Jos (10584)
Jos (10584) le 1 Fév 2018
this seems to be a new question ...
Jan
Jan le 1 Fév 2018
@Jos: I assume, Mushahid means the "1:3" from "sub2ind(size(B), A, 1:3)".

Connectez-vous pour commenter.

Plus de réponses (2)

Andrei Bobrov
Andrei Bobrov le 1 Fév 2018
n = numel(A);
B = accumarray([A(:),(1:n)'],1,[10,n]);

Jos (10584)
Jos (10584) le 1 Fév 2018
A fast and easy one-liner from the old days, when accumarray did not exist :)
A = [2 ; 4 ; 5]
B = full(sparse(A, 1:numel(A), 1, 10, 3))

Catégories

En savoir plus sur Creating and Concatenating Matrices 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!

Translated by