Я не уверен на 100% в том, что вы делаете, но, возможно, это позволит добиться того же с помощью встроенных в MATLAB функций означает и 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