算法程序是从网上摘抄过来的,但是我添加了注释
由于MATLAB中只有对矩阵直接分解成行最简形式
E(r) | D |
0 | 0 |
说明:程序中对(m*n)矩阵A进行了满秩分解,分解为P*Q,其中P是m*r矩阵,Q是r*n矩阵,r是矩阵A的秩
B=rref(A); %将矩阵A化成行最简形式(rref,Reduced row echelon form),保存在B中
[m,n]=size(A); %获取矩阵A的大小:m行n列
P0(1:m,:)=0; %生成一个m行1列的列向量,全部值均为0
Q0(:,1:n)=0; %生成一个1行n列的行向量,全部值均为0
for i=1:m %依次扫描矩阵m行
flag=1;
for j=1:n %依次扫描矩阵n列
if B(i,j)==1 %若B(i, j)等于1
for k&#