这里我想比较两个不同涡轮机的功率曲线。让我们假设您有两个表tb1用于涡轮机1(有X =速度和X1 =功率值)和tb2用于涡轮机2(有y =速度和y1 =功率值。)现在有tb1数据的帮助;我计算了binEdge(使用X),然后进行了binning(使用x1),这样在std和mean值的帮助下我们知道了分布,你可以看到下面的代码:
binEdges = linspace(min(X),max(X),numBins);
[N,binEdges] = histcounts(X, binEdges);
for i = 1:numBins
flagBinMembers = (binEdges == i);
binMembers = X1(flagBinMembers);
BinMean(i) = mean(binMembers);
BinStd(i) = std(binMembers);
end
现在在tb2中,我想检查速度或y分布的值w.r.t高于计算的标准值和平均值。一旦我知道了位置或分布y或速度属于哪个,那么我想通过进行一些概率测试来估计其相应的功率值。这个功率可以用可用功率y1进一步验证,以查看天气估计功率值是否正确。 / p>
答案 0 :(得分:1)
如果您有统计信息和机器学习工具箱,并且只需估算binMembers
的参数,然后查看X1
是否来自同一分布:
numBins = 5;
binEdges = linspace(min(X),max(X),numBins);
N = histcounts(X, binEdges);
for k = 1:numBins-1
binMembers = X(X>=binEdges(k) & X<binEdges(k+1));
if ~isempty(binMembers)
is_X1_fit = ~chi2gof(X1,'CDF',makedist('Normal',...
'mu',mean(binMembers),'sigma',std(binMembers)))
else
disp('bin is empty')
end
end
如果is_X1_fit
属于X1
分布, binMembers
将返回1,否则返回0。