MATLAB: Solving linear matrix equation

#matrixequationsingular

Hi folks! I need some help (Though I have a doubt whether this is an appropriate question for this group).
Can you please help me to solve this equation: AB=A, where A is a known symmetric, singular matrix. And diagonal elements of B are also known.
For clarification: All elements of A is known. And only diagonal elements of B are known. As an example, you can consider: [1 -1/2 -1/2; -1/2 1 -1/2; -1/2 -1/2 1] and diag B=[ 3 3 3].
Thanks in advance.

Best Answer

% Generate testexample of A, B (n x n) matrix such that A*B=A
% Here A is generated to be symmetric but it doesn't matter
n = 5;
C = rand(n,1)*rand(1,n);
K = null(C);
A = K*K.';
B = C.' + eye(n)
% INPUT
dB = diag(B);
clear B
% Reconstruct (off-diagonal elemenst of) B from A and dB
X = A.*(1-dB(:).');
n = size(A,2);
B = diag(dB);
for j=1:n
i = [1:j-1,j+1:n];
B(i,j) = A(:,i) \ X(:,j);
end
B