以下是采用两个相等大小的矢量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:现在输出向量的格式是正确的,但是值很多都是关闭的 .
1 回答
我建议你使用r = corrcoef(X,Y),它会给你一个2x2矩阵中你想要的标准化r值,你可以只返回r(2,1)条目作为你的答案 . 这样做相当于
但是,如果你真的想做你在问题中提到的事情,你也可以这样做