Column and Row factors

7 views (last 30 days)
Fayyaz
Fayyaz on 14 Apr 2015
Answered: Titus Edelhofer on 14 Apr 2015
Hi,
I have a 12*12 matrix, whose row sum in Not equal to the respective column sum (overall sum in equal), i.e. sum of the entries of the 1st column is different from the sum of the entries of the 1st row and so on. I need to equalize these sum using row and column factors.
Column factor is equal to sum of entries of row divide by sum of entries of column and vice versa for the Row factor (so I will have 12 factors). Firstly, when I get column factors I will multiply this to that 12*12 matrix. Then I have to multiply it with row factors, this will be iterative process until these sums are close to each other (i.e. within 5%).
Any help in this regard would be greatly appreciated.

Accepted Answer

Titus Edelhofer
Titus Edelhofer on 14 Apr 2015
Hi,
something like this?
A = rand(12);
err = 1;
it = 1;
while err > 0.05 && it<10
colFactor = sum(A,2) ./ sum(A,1)';
A = A * diag(colFactor);
rowFactor = sum(A,1) ./ sum(A,2)';
A = diag(rowFactor) * A;
err = max(abs(rowFactor-1));
it = it + 1;
end
Titus

More Answers (0)

Categories

Find more on Resizing and Reshaping Matrices in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!