Matlab 差分函数不';编译时无法工作
我写了一个简单的程序,用牛顿-拉斐逊法计算非线性方程的根,因此我需要计算函数在某些点上的导数。 我使用函数“diff”,它接受字符串并返回其派生,然后使用eval计算切线的斜率:Matlab 差分函数不';编译时无法工作,matlab,Matlab,我写了一个简单的程序,用牛顿-拉斐逊法计算非线性方程的根,因此我需要计算函数在某些点上的导数。 我使用函数“diff”,它接受字符串并返回其派生,然后使用eval计算切线的斜率: func='sin(x^2)'; x=4.5; slope=eval(diff(func)); 代码位于一个.m文件中,该文件与其他一些.fig文件一起。 当我在GUIDE环境中或通过MATLAB的命令窗口调试/运行它时,一切似乎都很好,只有一个警告,该函数将在将来的版本中被弃用。 但是,当我使用以下命令编译文件:“
func='sin(x^2)';
x=4.5;
slope=eval(diff(func));
代码位于一个.m文件中,该文件与其他一些.fig文件一起。
当我在GUIDE环境中或通过MATLAB的命令窗口调试/运行它时,一切似乎都很好,只有一个警告,该函数将在将来的版本中被弃用。
但是,当我使用以下命令编译文件:“mcc-efile1file2”并运行.exe时,当它到达带有“diff”和“beep”的特定行时,会抛出运行时错误!
是否有其他方法可以计算应用程序文件中也支持的导数(符号/非数字)?对此进行了讨论。问题是
func
不是diff
。不能使用其他方法将函数定义为字符串吗?如果可能,将func设置为普通函数文件,然后将其包含在部署的包中 对此进行了讨论。问题是func
不是diff
。不能使用其他方法将函数定义为字符串吗?如果可能,将func设置为普通函数文件,然后将其包含在部署的包中 这个函数是由用户通过用户界面给出的,所以它没有定义或是一个精确的函数。哦,我明白了。在这种情况下,使用函数字符串和eval将不起作用。您可以设计一个计算器样式的界面,并通过单击适当的按钮让它们输入表达式,或者您可以尝试将用户键入的表达式解析为对应的matlab函数。后者听起来很痛苦。这个函数是由用户通过用户界面提供的,所以它没有定义或是一个精确的函数。哦,我明白了。在这种情况下,使用函数字符串和eval将不起作用。您可以设计一个计算器样式的界面,并通过单击适当的按钮让它们输入表达式,或者您可以尝试将用户键入的表达式解析为对应的matlab函数。但后者听起来很痛苦。