Weighted matrix to edge list
2 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Hello,
Is there a quick way to transform a matrix such as
[10 1 9; 1 5 4; 2 1 5]
into an edge list with the information containing both i and j (also when i=j) and the value of the pair. For example
[1 1 10; 1 2 1; 1 3 9; 2 1 1; 2 2 5; 2 3 4; 3 1 2; 3 2 1; 3 3 5].
Thanks in advance for any help.
0 commentaires
Réponse acceptée
Stephen23
le 17 Nov 2017
Modifié(e) : Stephen23
le 17 Nov 2017
One way based around ndgrid:
>> M = [10 1 9; 1 5 4; 2 1 5];
>> N = M.';
>> S = size(N);
>> [R,C] = ndgrid(1:S(1),1:S(2));
>> [C(:),R(:),N(:)]
ans =
1 1 10
1 2 1
1 3 9
2 1 1
2 2 5
2 3 4
3 1 2
3 2 1
3 3 5
If the order is not important then you do not need the transpose. Note that in MATLAB the first dimension is down the columns.
Plus de réponses (0)
Voir également
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!