[row,col] = size(A);
if row~=col
error('A must be square matrix!')
end
Diag = diag(A);
A_mod = A - Diag.*eye(row);
for i=1:row
A_sum_row(i) = sum(abs(A_mod(i,:)));
A_sum_col(i) = sum(abs(A_mod(:,i)));
end
if (all(A_sum_row(:)<abs(Diag(:)))==true && all((A_sum_col(:))<abs(Diag(:)))==true)
fprintf('A is diagonal dominant by rows and column \n')
elseif A_sum_row(:)<abs(Diag(:))
fprintf('A is diagonal dominant by rows \n')
elseif A_sum_col(:)<abs(Diag(:))
fprintf('A is diagonal dominant by column \n')
else
result = false;
end
if exist('result','var')
[max_val_row,max_pos_row]=max(abs(A));
if length(unique(max_pos_row))~=length(max_pos_row)
fprintf('A isn''t diagonal dominant by rows or column \n')
else
for i = 1:row
A_diag_dom(i,:) = A(max_pos_row(i),:);
B(i) = b(max_pos_row(i));
end
end
end