📄 maxcanonicalcorrelation.m
字号:
function [u, v] = maxCanonicalCorrelation(Xa, Xb)
%A function to find the directions that maximise correlation
numExamples = size(Xa, 1);
numXaFeatures = size(Xa, 2);
numXbFeatures = size(Xb, 2);
alpha = 0.001;
Caa = Xa'*Xa + eye(numXaFeatures)*alpha;
Cbb = Xb'*Xb + eye(numXbFeatures)*alpha;
Cab = Xa'*Xb;
Cba = Cab';
Q1 = inv(sqrtm(Caa))*Cab*inv(sqrtm(Cbb));
Q2 = inv(sqrtm(Cbb))*Cba*inv(sqrtm(Caa));
zeroMatrix1 = zeros(numXaFeatures, numXaFeatures);
zeroMatrix2 = zeros(numXbFeatures, numXbFeatures);
Z = [zeroMatrix1, Q1; Q2, zeroMatrix2];
[T, D] = eigs(Z, 1);
u = inv(sqrtm(Caa))*T(1:numXaFeatures, 1);
v = inv(sqrtm(Cbb))*T(numXaFeatures+1:numXbFeatures+numXaFeatures, 1);
u = u/norm(u);
v = v/norm(v);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -