您正在寻找的概念称为canonical correlation。它是多变量分析领域中发展良好的理论。本质上,我们的想法是找到第一个矩阵中列的线性组合和第二个矩阵中列的线性组合,以便最大化两个线性组合之间的相关性。
这可以使用特征向量和特征值手动完成,但是如果你有统计工具箱,那么Matlab已经将它打包并准备好为你服务。该函数名为canoncorr,文档为here
使用此功能的简短示例如下:
%# Set up some example data
CovMat = randi(5, 4, 4) + 20 * eye(4); %# Build a random covariance matrix
CovMat = (1/2) * (CovMat + CovMat'); %# Ensure random covriance matrix is symmetrix
X = mvnrnd(zeros(500, 4), CovMat); %# Simulate data using multivariate Normal
%# Partition the data into two matrices
X1 = X(:, 1:2);
X2 = X(:, 3:4);
%# Find the canonical correlations of the two matrices
[A, B, r] = canoncorr(X1, X2);
第一个规范相关是r的第一个元素,第二个规范相关是r的第二个元素。
canoncorr函数还有很多其他输出。我不确定我是否足够聪明,可以在这里提供一个令人满意而简洁的解释,所以相反我会跛脚并建议你在多元分析教科书中阅读 - 大多数多元分析教科书都会有一个完整的专门讨论规范关联的章节。
最后,如果您没有统计工具箱,那么快速谷歌会透露以下FEX submission声称提供规范相关性分析 - 请注意,我自己没有测试过。