【发布时间】:2012-07-19 16:28:09
【问题描述】:
如果我有一个矩阵:
data = rand(365,5);
计算每列与其余列的平均值之间的相关性最合适的方法是什么。例如,对于第一列:
R = nonzeros(tril(corrcoef(data(:,1),mean(data(:,2:end)')'),-1));
我怎样才能重复这个过程,以便我有 5 个相关值,即每个系列?
编辑:
感谢 cmets。这也可以在一行中完成:
R = arrayfun(@(x)nonzeros(tril(corrcoef(data(:,x),...
mean(data(:,setdiff(1:size(data,2),x))')'),-1)),1:size(data,2));
对于那些希望避免循环的人。尽管在这种情况下,下面显示的方法由于其可读性而更好。
【问题讨论】:
-
corrcoef(data)不起作用吗?它应该返回一个 5x5 矩阵,其中包含所有可能的列组合之间的相关性。 -
它确实可以满足我的需要。我想计算每列与其他列的平均值之间的相关性,而不是每列之间的相关性
标签: matlab correlation