'Outliers.m' 从更高级别的 .m 文件中调用。这些变量都在更高级别的文件中定义,并设置为全局变量以供 Outliers.m 访问。代码的目的是使用 Chauvenets Criterion 识别异常值,为此,我必须使用 Integral 函数和函数句柄来计算高斯分布的积分。当我输入特定变量作为测试时,代码可以工作并给出合理的值,但我无法让它在循环中工作。我的数据集由 7 个单独的样本组成,每个 1x30,所有这些都需要分析。我遇到了各种错误,阅读了关于 Integral 和函数句柄的指南,但似乎找不到解决方案......非常感谢任何帮助或指导......这是我的代码:
n = 7
for x = 1:n
for y = 1:30
z(x,y) = abs((cc(x,y) - mastercc(1,y))/masterccstd(1,y));
xmax(x,y) = mastercc(1,y)+z(x,y)*masterccstd(1,y);
xmin(x,y) = mastercc(1,y)-z(x,y)*masterccstd(1,y);
p(x,y) = 1/(masterccstd(1,y)*(sqrt(2*pi)));
fun(x,y)= @(x,y,z) (exp(-1/2)*z(x,y).^2);
q(x,y) = integral(fun(x,y),xmin(x,y),xmax(x,y),'ArrayValued',true);
pq(x,y) = p(x,y)*q(x,y); % probability
value(x,y) = n*(1/pq(x,y));
count(x,y) = logical(value(x,y) <0.5);
badbins(x)=sum(count(x,:));
end
end