在MATLAB中将邻接矩阵转换为特定的边缘列表

时间:2015-09-16 21:00:15

标签: matlab adjacency-matrix

如果我有矩阵

  1 0 0  
  0 0 1 
  0 0 0 

我想在MATLAB中使用这个表格

1 2 3  1 2 3  1 2 3
1 1 1  2 2 2  3 3 3
1 0 0  0 0 0  0 1 0

我也希望结果中第三行的值。即ans= [1 0 0 0 0 0 0 1 0]

1 个答案:

答案 0 :(得分:3)

你去吧 -

[X,Y] = ndgrid(1:size(A,1),1:size(A,2));
out = [X(:).' ; Y(:).' ; A(:).']

对于问题的最后一部分,请使用out的最后一行:out(end,:)A(:).'

示例运行 -

>> A
A =
     1     0     0
     0     0     1
     0     0     0
>> [X,Y] = ndgrid(1:size(A,1),1:size(A,2));
>> out = [X(:).' ; Y(:).' ; A(:).']
out =
     1     2     3     1     2     3     1     2     3
     1     1     1     2     2     2     3     3     3
     1     0     0     0     0     0     0     1     0