有2个向量vec_x和vec_y,我用这样的非线性最小二乘法进行拟合:
%%myfunction.m
function F = myfun(x,vec_x)
F = 10*(erfc((x(1)+x(2)*vec_x)/sqrt(2))/2);
end
%%console
options = optimoptions('lsqcurvefit','Algorithm','levenberg-marquardt');
x = lsqcurvefit(@myfun, [0 1], vec_x, vec_y,[],[],options); %here i obtain x(1) and x(2).
当我想用相关点(vec_x .vs vec_y)绘制拟合曲线时,我会这样执行:
y_fit=10*erfc((x(1)+x(2)*vec_x)/sqrt(2))/2
plot(vec_x,y_fit)
问题在于,当我使用" Curv-fit App"时,我有一个奇怪的曲线与我自动的曲线不相似。 Matlab的工具(我使用相同的自定义函数和矢量作为控制台)。
在Curve-fitting GUI中,我得到了这个:见下图 snapshot-curveFitting-GUI
我怎样才能有正确的情节,以便我可以更多地管理情节?
答案 0 :(得分:0)
我在Matlab的文档中找到了答案。为了绘制Cftool的曲线拟合,我们应该选择File-> Generate code。 Curve Fitting应用程序从当前会话生成代码,并在MATLAB编辑器中显示该文件。该文件包括当前会话中的所有拟合和图。我们必须执行代码才能获得情节。
这是由Matlab生成的代码:
<script type="text/javascript">
head.load([ '${pageContext.request.contextPath}/javascript/timecookie.js',
'http://code.jquery.com/jquery-1.10.2.min.js' ],
function() {
console.log("Done loading resources");
$(document).ready(function(){
$('button').click(function(){
console.log("running");
var url='myapp.com/mainpage.jsp?check='+this.id;
alert(url);
});
});
});
</script>
再次感谢