Converting location of a 2x3 vector into a matrix with value 1
6 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Suppose I have
a = 2×3
1 3
2 4
7 8
Now I want to create a matrix of dimension 10 x 10 where the entries 1,3 and 2,4 and 7,8 are equal to one.
Z = zeros(10) % 10 x 10 matrix containing only zeros
Z(a(1,1),a(1,2))=1 % now entry 1,3 is equal to 1
This is an illustrative example and I could for sure just code the second line three times. However for a large matrix a this will be tedious. I have tried to solve this problem with some for loops but without any positve result.
3 commentaires
Arif Hoq
le 23 Mar 2022
or this one ?
a = [1 3;2 4;7 8];
Z = zeros(10) ;% 10 x 10 matrix containing only zeros
Z(a(1,1),a(1,2))=1; % now entry 1,3 is equal to 1
Z(a(2,1),a(2,2))=1;
Z(a(3,1),a(3,2))=1
Réponse acceptée
Plus de réponses (3)
Stephen23
le 23 Mar 2022
Modifié(e) : Stephen23
le 23 Mar 2022
"However for a large matrix a this will be tedious."
If you have a large matrix it may be better if it were a sparse array (which can make operations using it more efficient), in which case this task is very easy:
a = [1,3;2,4;7,8];
m = sparse(a(:,1),a(:,2),1,10,10)
full(m) % checking
0 commentaires
Bruno Luong
le 23 Mar 2022
Modifié(e) : Bruno Luong
le 23 Mar 2022
a = [1,3;2,4;7,8]; % assumed there is no repeated indexes
A = accumarray(a,1,[10,10])
0 commentaires
Voir également
Catégories
En savoir plus sur Matrices and Arrays 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!