主题:一个关于稀疏矩阵的问题,请各位大侠帮忙!
下面的例子直道最后一句我都知道是怎样操作的,可是最后一句变成稀疏矩阵的原理是什么啊?矩阵为什么就变成一个10*15的形式呢?还有,+1和-1是怎样得道的阿?请各位高手帮帮忙啊!
A=[ 0 1
0 2
1 3
1 4
2 3
2 4
3 5
3 6
4 5
4 6
4 7
5 8
6 8
7 8
8 0 ]
m = max(A(:,1));
k = min(A(:,1));
if k==0
A = A + 1; m = m+1;
end
n = size(A,1);
J = (1:n)';
m = m+1;
e = ones(n,1);
A = sparse([A(:,1); A(:,2); m*e], [J; J; J], [e; -e; e]);
% After the operations above, A will now be this:
% [ 1 1 0 0 0 0 0 0 0 0 0 0 0 0 -1
% -1 0 1 1 0 0 0 0 0 0 0 0 0 0 0
% 0 -1 0 0 1 1 0 0 0 0 0 0 0 0 0
% 0 0 -1 0 -1 0 1 1 0 0 0 0 0 0 0
% 0 0 0 -1 0 -1 0 0 1 1 1 0 0 0 0
% 0 0 0 0 0 0 -1 0 -1 0 0 1 0 0 0
% 0 0 0 0 0 0 0 -1 0 -1 0 0 1 0 0
% 0 0 0 0 0 0 0 0 0 0 -1 0 0 1 0
% 0 0 0 0 0 0 0 0 0 0 0 -1 -1 -1 1
% 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ]
A=[ 0 1
0 2
1 3
1 4
2 3
2 4
3 5
3 6
4 5
4 6
4 7
5 8
6 8
7 8
8 0 ]
m = max(A(:,1));
k = min(A(:,1));
if k==0
A = A + 1; m = m+1;
end
n = size(A,1);
J = (1:n)';
m = m+1;
e = ones(n,1);
A = sparse([A(:,1); A(:,2); m*e], [J; J; J], [e; -e; e]);
% After the operations above, A will now be this:
% [ 1 1 0 0 0 0 0 0 0 0 0 0 0 0 -1
% -1 0 1 1 0 0 0 0 0 0 0 0 0 0 0
% 0 -1 0 0 1 1 0 0 0 0 0 0 0 0 0
% 0 0 -1 0 -1 0 1 1 0 0 0 0 0 0 0
% 0 0 0 -1 0 -1 0 0 1 1 1 0 0 0 0
% 0 0 0 0 0 0 -1 0 -1 0 0 1 0 0 0
% 0 0 0 0 0 0 0 -1 0 -1 0 0 1 0 0
% 0 0 0 0 0 0 0 0 0 0 -1 0 0 1 0
% 0 0 0 0 0 0 0 0 0 0 0 -1 -1 -1 1
% 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ]