% function [Final_P,Final_Q] = fullRankDecomps(A)
%
% A = [1,2,2;2,1,2;1,2,1];
% %对矩阵进行满秩分解
% 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,:);
A = [0,0,1;2,1,1;2,1,0];
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=1:i-1 %固定j列,扫描此列的第1行到i-1行元素
if B(k,j)~=0 %判断是否全为0
flag=0; %若不全为0,则将flag置为0(说明此列不是单位矩阵的列)
break;
end
end
for k=i+1:m %固定j列,扫描此列的第i+1行到m行(即最后一行)元素
if B(k,j)~=0 %判断是否全为0
flag=0; %若不全为0,则将flag置为0(说明此列不是单位矩阵的列)
break;
end
end
if flag==1 %若flag为1(不为0),则说明此列是【矩阵的行最简形式矩阵】的单位矩阵的列
P0=[P0,A(:,j)]; %将矩阵A的j列加到P0列向量之后,如P0=[[0;1;2;3;4],[5;6;7;8;9]]
Q0=[Q0;B(i,:)]; %将矩阵B的i行加到Q0行向量之后,如Q0=[ 0,1,2,3,4 ; 5,6,7,8,9 ]或Q0=[[0,1,2,3,4];[5,6,7,8,9]]
end
end
end
end
[m1,n1]=size(P0); %获取矩阵P0的大小:m1行n1列
[m2,n2]=size(Q0); %获取矩阵Q0的大小:m2行n2列
P=P0(:,2:n1); %将矩阵P0的第2列到最后一列赋值给矩阵P(因为第一列是列向量初始化列,其全为0)
Q=Q0(2:m2,:); %将矩阵Q0的第2行到最后一行赋值给矩阵Q(因为第一行是行向量初始化行,其全为0)
没有合适的资源?快使用搜索试试~ 我知道了~
svddecomp-.rar_SVDDecomp_taken64s_threwik4_奇异值_奇异值分解
共3个文件
m:3个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 49 浏览量
2022-07-15
01:28:34
上传
评论
收藏 2KB RAR 举报
温馨提示
实现矩阵的奇异值分解,将矩阵分别分解为两个矩阵与奇异值矩阵的乘积
资源推荐
资源详情
资源评论
收起资源包目录
svddecomp-.rar (3个子文件)
svdDecomos.m 489B
SVDecomps.m 428B
FGDecomps.m 2KB
共 3 条
- 1
资源评论
寒泊
- 粉丝: 75
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功