将邻接矩阵转换为 MATLAB 中的特定边列表
Convert adjacency matrix to specific edge list in MATLAB
如果我有矩阵
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]
给你 -
[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
如果我有矩阵
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]
给你 -
[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