質問
iは角度を含む行列を有し、平均と分散を計算する必要があります。 このようにして手順を意味します。 各角度についてSINとCOSを計算し、すべての罪とすべてのCOSを合計する 平均はATAN2(SIN、COS)によって与えられます そしてそれは機能します 私の質問は、意味を知っている角度の分散を計算する方法ですか?
答えをありがとう
マットラブコードを添付します:
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
他のヒント
角度の分散を計算するために標準の分散を使用することはできません。これは角度のaを計算するための定式化です
r= 1 - sqrt((SIN(角度))^ 2 +(合計(cos(角度))^ 2)/ n; 他の類似の製剤もあります var(角度)= var(sin(角度))+ var(cos(角度));
REF: http://www.ebi.ac.uk/thornton.-SRV /ソフトウェア/ ProCheck / NMR_MANUAL / MAN_CV.HTML
循環データの分散は、実線上の無制限データの分散のように扱うことはできません。(非常に小さい分散のために、それらは効果的に同等ですが、大きな分散のために等価性が減少します。これがなぜあなたにとって明らかであるはずです。フィッシャー。この本は、角度に対応する単位ベクトルの平均値の長さから計算される循環分散の幅広い定義を含みます。
>> sumsin = sum(sin((hue(:)-meanvalue).^2)); >> sumcos = sum(cos((hue(:)-meanvalue).^2));.
が間違っています。あなたはそのような角度を差し引くことができません。
ところで、この質問は本当にMATLABとは関係ありません。おそらくあなたはおそらく統計スタック交換に投稿を増やすことができます。