Weighted matrix to edge list
    1 visualizzazione (ultimi 30 giorni)
  
       Mostra commenti meno recenti
    
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 Commenti
Risposta accettata
  Stephen23
      
      
 il 17 Nov 2017
        
      Modificato: Stephen23
      
      
 il 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.
Più risposte (0)
Vedere anche
Categorie
				Scopri di più su Creating and Concatenating Matrices 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!