我有一个包含角度的矩阵,我需要计算均值和方差。
对于我以这种方式进行的平均值:
对于每个角度计算 sin 和 cos 并将所有 sin 和所有 cos 相加
平均值由 atan2(sin, cos) 给出
它有效
我的问题是如何计算知道平均值的角度的方差?
谢谢你的回答
我附上我的matlab代码:
for i=1:size(im2,1)
for j=1:size(im2,2)
y=y+sin(hue(i, j));
x=x+cos(hue(i, j));
end
end
mean=atan2(y, x);
if mean<0
mean=mean+(2*pi);
end
最佳答案
我不是 100% 确定你在做什么,但也许这会通过构建 MATLAB 函数 mean 和 var 来实现同样的事情。
>> [file path] = uigetfile;
>> someImage = imread([path file]);
>> hsv = rgb2hsv(someImage);
>> hue = hsv(:,:,1);
>> m = mean(hue(:))
m =
0.5249
>> v = var(hue(:))
v =
0.2074
编辑:我假设你有一个图像,因为你的变量名
hue
。但是对于任何矩阵都是一样的。编辑 2:也许这就是你要找的:
>> sumsin = sum(sin(hue(:)));
>> sumcos = sum(cos(hue(:)));
>> meanvalue = atan2(sumsin,sumcos)
meanvalue =
0.5276
>> sumsin = sum(sin((hue(:)-meanvalue).^2));
>> sumcos = sum(cos((hue(:)-meanvalue).^2));
>> variance = atan2(sumsin,sumcos)
variance =
0.2074
关于角度的matlab方差,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4968899/