我有一个包含角度的矩阵,我需要计算均值和方差。
对于我以这种方式进行的平均值:
对于每个角度计算 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 函数 meanvar 来实现同样的事情。

>> [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/

10-13 09:15