Added feature to ensure zero diagonal is represented

This commit is contained in:
vhenson 1997-07-31 15:58:15 +00:00
parent c55d879cec
commit 131c643b78
2 changed files with 22 additions and 2 deletions

View File

@ -5,12 +5,21 @@ function [nv,ia,ja,a] = manalyze(A);
%-----------------------------------------
% determine row/column indices of nonzero entries
[ja, I, a] = find(A');
% add to diagonal while determining indices to
% ensure that diagonal will be present even if 0
d = diag(A);
mn = min(d);
shf=mn+1;
[ja, I] = find(A'+shf*eye(size(A)));
t = find(A'+shf*eye(size(A)));
AA=A';
a=full(AA(t));
nv = size(A, 1);
na = size(a, 1);
% compute ia and put diagonal entry first on each row
ia = zeros(nv+1, 1);
ia(1) = 1;
for i = 1 : nv
@ -21,6 +30,7 @@ for i = 1 : nv
end
% swap diagonal entry with first entry
if (ja(k) == i)
tmp = a(ia(i));
a(ia(i)) = a(k);

View File

@ -5,12 +5,21 @@ function [nv,ia,ja,a] = manalyze(A);
%-----------------------------------------
% determine row/column indices of nonzero entries
[ja, I, a] = find(A');
% add to diagonal while determining indices to
% ensure that diagonal will be present even if 0
d = diag(A);
mn = min(d);
shf=mn+1;
[ja, I] = find(A'+shf*eye(size(A)));
t = find(A'+shf*eye(size(A)));
AA=A';
a=full(AA(t));
nv = size(A, 1);
na = size(a, 1);
% compute ia and put diagonal entry first on each row
ia = zeros(nv+1, 1);
ia(1) = 1;
for i = 1 : nv
@ -21,6 +30,7 @@ for i = 1 : nv
end
% swap diagonal entry with first entry
if (ja(k) == i)
tmp = a(ia(i));
a(ia(i)) = a(k);