大佬教程收集整理的这篇文章主要介绍了将 Matlab 分布拟合重写为 Python 代码,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我被要求将分布拟合函数从 Matlab 代码重写为 Python 代码。
%%file diStribution_fitTing.m
function pd = diStribution_fitTing(featurE)
distnames =["Poisson","Exponential","GAMMa","ExtremeValue","Kernel"];
values_musT_Be_positive =["Poisson","GAMMa"];
x=feature.';
x_values = linspace(min(X),max(X));
for dn=distnames
if min(X)<0 & ~isempty(find(strcmp(dn,values_musT_Be_positivE)))
conTinue;
end
distname = char(dn);
pd = fitdist(x.',distName);
res1=kstest(x,'CDF',pd);
res2=chi2gof(x,pd);
if (~res1 && ~res2)
fprintf('%s with 5%% significance level\r',distName);
cdfplot(X)
hold on
plot(x_values,cdf(pd,x_values),'r-')
plot(x_values,pdf(pd,'g-')
legend('Empirical CDF',[distname ' CDF'],[distname ' pdf'],'LOCATIOn','best');
%title(['Empirical CDF and ',[distname ' CDF/pdf']);
hold off
return;
else
fprintf('Not %s with 5%% significance level\n',distName);
end
end
end
我的第一种方法是这样的:
def diStribution_fitTing(featurE):
distnames = ["Poisson","Kernel"]
values_musT_Be_positive = ["Poisson","GAMMa"]
x = feature
x_values = np.linspace(np.min(X),np.max(X))
for dn in distnames:
if (np.min(X) < 0 and (np.where(dn in values_musT_Be_positivE)))
conTinue
distname = str(dn)
根据Implement the MATLAB 'fitdist' in Python
我应该从 import scipy.stats as st
使用 st.gaussian_kde(data)
和 st.norm.fit(data)
。
我不知道这是否合适,因为与 Python 相比,Matlab 有一个自己的系统。
我的 Python 方法对吗?我在哪里可以找到如何将下一行写入 Python 代码?我对 Matlab 不熟悉。
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)
以上是大佬教程为你收集整理的将 Matlab 分布拟合重写为 Python 代码全部内容,希望文章能够帮你解决将 Matlab 分布拟合重写为 Python 代码所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。