为啥函数 lsqcurvefit 在 Matlab 2015b 中似乎不起作用?

Posted

技术标签:

【中文标题】为啥函数 lsqcurvefit 在 Matlab 2015b 中似乎不起作用?【英文标题】:Why does the function lsqcurvefit not seem to work in Matlab 2015b?为什么函数 lsqcurvefit 在 Matlab 2015b 中似乎不起作用? 【发布时间】:2017-08-20 15:18:03 【问题描述】:

我使用的是 Matlab 2015b,函数 lsqcurvefit 似乎不起作用。其实得到如下错误信息

Diagnostic Information:
Feature: Optimization_Toolbox
License path:
/home/username/.matlab/R2015b_licenses:/.netmount/app/MATLAB/R2015b/licenses/license.dat:/.netmount/app/MATLAB/R2015b/licenses/license.lic:/.netmount/app/MATLAB/R2015b/licenses/network.lic

Licensing error: -18,147.

Error in test (line 7)
x = lsqcurvefit(fun,x0,xdata,ydata)

下面的脚本。请注意,当我用 lsqcurvefit 注释掉最后一行时,不会出现错误消息。有趣的是,该脚本在另一台装有 Matlab 2017a 的机器上运行良好。

xdata = [0.9 1.5 13.8 19.8 24.1 28.2 35.2 60.3 74.6 81.3];
ydata = [455.2 428.6 124.1 67.3 43.2 28.1 13.1 -0.4 -1.3 -1.5];

fun = @(x,xdata)x(1)*exp(x(2)*xdata);

x0 = [100,-1];
x = lsqcurvefit(fun,x0,xdata,ydata)

请问有什么想法吗?谢谢

【问题讨论】:

您没有许可证,或者许可证有问题。如果您键入 -ver`,MATLAB 会告诉您您拥有许可证吗? @AnderBiguri 谢谢。这是一个学术许可证 @AnderBiguri 确实如此。我检查了 license('test','Optimization_Toolbox') 并返回 0 所以你没有许可证。因此你不能使用它。 【参考方案1】:

lsqcurvefit 命令不是 MATLAB 的一部分,它是附加产品优化工具箱的一部分。看起来您的 17b 安装有该产品,但您的 15b 安装没有,因此您收到一条错误消息,提示您没有该产品的许可证。

【讨论】:

以上是关于为啥函数 lsqcurvefit 在 Matlab 2015b 中似乎不起作用?的主要内容,如果未能解决你的问题,请参考以下文章

用`lsqcurvefit`拟合高斯时初始点的局部最小值

matlab拟合曲线的方法有几种

matlab 二维数据点 光滑曲线

MATLAB从入门到精通系列-非线性曲线拟合函数lsqcurve()详解

matlab中curvefit总是报错

LORENTZFIT 将单参数或多参数洛伦兹函数拟合到数据Matlab