满秩分解的概念:
Matlab实现:
function [Final_P,Final_Q] = fullRankDecomps(A)
% 对矩阵A进行最大秩分解
B = rref(A); %计算行最简式
[m, n] = size(A);
P(1:m,:) = 0;
Q(:,1:n) = 0;
for i = 1:m
for j = 1:n
if(B(i,j)==1.0 && sum(B(1:i-1,j))==0 && sum(B(i+1:m,j))==0)
P = [P,A(:,j)];
Q = [Q;B(i,:)];
end
end
end
Final_P = P(:,2:end);
Final_Q = Q(2:end,:);