📄 chenmh_bi.m
字号:
function [Qb,Qa,Ra,Rb] = Chenmh_Bi(X,r,itr_times);
% Chen minhua, 2006.02.09.
% Classical Bi-Iteration.
% "Bi-Iteration SVD Subspace Tracking algorithms,"
% IEEE Trans. Signal Processing.
%% Row of the input matrix is larger than the column.
[m,n] = size(X);
Qa = eye(n); Qa = Qa(:,1:r);
for i = 1:itr_times
B = X*Qa;
[Qb,Rb] = qr(B,0);
A = X'*Qb;
[Qa,Ra] = qr(A,0);
end
% %% Below is additional code.
%
% %% Chen minhua, 2006.02.09.
% %% Bi-Iteration techniques testing platform.
% X = randn(6,4);
% r = 2; itr_times = 120;
% [Qb,Qa,Ra,Rb] = Chenmh_BI(X,r,itr_times);
% [U,S,V] = svd(X,'econ');
% U
% Qb
%
%
% %% Below tracks the performance of the algorithm.
% [m,n] = size(X);
% Qa = eye(n); Qa = Qa(:,1:r);
% [U,S,V] = svd(X);
% err = zeros(1,itr_times);
% for i = 1:itr_times
% B = X*Qa;
% [Qb,Rb] = qr(B,0);
% A = X'*Qb;
% [Qa,Ra] = qr(A,0);
% Qb_signed = Qb*diag(sign(U(1,1:r))./sign(Qb(1,:)));
% err(i) = norm(Qb_signed-U(:,1:r),'fro');
% end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -