[英]How can I calculate the correlation coefficient of two wav's with fft in MATLAB?
[英]How do I write correlation coefficient manually in matlab?
以下是一個函數,該函數采用兩個相等大小的向量X和Y,並假定返回一個包含用於圖像對應的單個相關系數的向量。 如果給定兩個相等大小的向量,則該函數應該與matlab中的內置corr(X,Y)函數類似地工作。 現在,我的代碼正在生成一個包含多個兩個數字的向量,而不是一個包含單個數字的向量。 我該如何解決?
function result = myCorr(X, Y)
meanX = mean(X);
meanY = mean(Y);
stdX = std(X);
stdY = std(Y);
for i = 1:1:length(X),
X(i) = (X(i) - meanX)/stdX;
Y(i) = (Y(i) - meanY)/stdY;
mult = X(i) * Y(i);
end
result = sum(mult)/(length(X)-1);
end
編輯:澄清一下,當給定相等大小的圖像強度值矢量時,我希望上述myCorr(X,Y)在matlab的corr(X,Y)處產生相同的輸出。
編輯2:現在輸出向量的格式正確,但是值相差很大。
我建議您使用r = corrcoef(X,Y),它將為您提供在2x2矩陣中尋找的歸一化r值,您可以僅返回r(2,1)項作為答案。 這樣做等同於
r=(X-mean(X))*(Y-mean(Y))'/(sqrt(sum((X-mean(X)).^2))*sqrt(sum((Y-mean(Y)).^2)))
但是,如果您真的想做在問題中提到的事情,您也可以做
r=(X)*(Y)'/(sqrt(sum((X-mean(X)).^2))*sqrt(sum((Y-mean(Y)).^2)))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.