matlab中归一化相关系数nc函数
发布网友
发布时间:2022-05-12 07:40
我来回答
共5个回答
热心网友
时间:2024-02-19 20:56
1、相关系数就用命令corrcoef
min(min(corrcoef(x1, x2))) 就是x1,x2之间的相关系数。
比如
t = (1:0.1:100)';
w = 2*pi;
x1=sin(w*t)+randn(size(t));
x2=cos(w*t)+randn(size(t));
x3=sin(w*t)+randn(size(t));
x1_x2 = min(min(corrcoef(x1, x2)))
x1_x3 = min(min(corrcoef(x1, x3)))
2、用corrcoef函数
设a1,b1,c1,d1 ,a2,b2,c2,d2 分别为f(x)和g(x)的系数
x=[a1,b1,c1,d1];
y=[a2,b2,c2,d2];
z=corrcoef(x,y)
热心网友
时间:2024-02-19 20:56
function [ y ] = NC( ImageA,ImageB)
%NC 此处显示有关此函数的摘要
% 此处显示详细说明
if (size(ImageA,1)~=size(ImageB,1))or(size(ImageA,2)~=size(ImageB,2))
error('ImageA<>ImageB');
y=0;
return;
end
ImageA=double(ImageA);
ImageB=double(ImageB);
[M,N]=size(ImageA);
d1=0;
d2=0;
d3=0;
for i=1:M
for j=1:N
d1=d1+ImageA(i,j)*ImageB(i,j)
d2=d2+ImageA(i,j)*ImageA(i,j)
d3=d3+ImageB(i,j)*ImageB(i,j)
end
end
y=d1/(sqrt(d2)*sqrt(d3));
end
热心网友
时间:2024-02-19 20:57
应该是你的if函数的括号没有配好对
另外,ImageA只是一个变量,在使用此函数的时候你应该替换为你想要算PSNR的图片的名称
热心网友
时间:2024-02-19 20:57
错误确实在"or"运算符上,不过不该改成"|",而应该是"II"(两个"|")。这是两个不同的符号
热心网友
时间:2024-02-19 20:58
提示第三行有错。matlab里没有or这个逻辑运算符,只有or函数。
把or换成|就OK了