Matlab 编码器 fzero 函数
Posted
技术标签:
【中文标题】Matlab 编码器 fzero 函数【英文标题】:Matlab coder fzero function 【发布时间】:2016-03-31 17:16:17 【问题描述】:我正在尝试使用“MATLAB Coder”将 MATLAB 代码转换为 C 代码,但不允许使用匿名函数。
如何将fzero
函数转换为例如
myfun = @(x,c) cos(c*x); % parameterized function
c = 2; % parameter
fun = @(x) myfun(x,c); % function of x alone
x = fzero(fun,0.1)
转换为普通函数,例如,将整个代码转换为 C。
【问题讨论】:
在这种情况下什么是“未定义函数”?我没有看到任何未定义的内容。 对不起,我会重命名它。你是对的 【参考方案1】:您有“匿名”函数,而不是“未定义”函数,只是为了澄清术语。
将以下内容转换为命名函数:
myfun = @(x,c) cos(c*x); % parameterized function
写这个:
function result = myfun(x,c)
result = cos(c*x);
end
对于第二个函数,这样写:
function result = myfun2(x)
c = 2;
result = cos(c*x);
end
最后,像这样调用 fzero:
x = fzero(@myfun2, 0.1);
【讨论】:
$c$也是参数(不是常数=2)怎么办? 不确定我是否遵循...在第一个函数中,c
是一个参数,以及 x。在您的示例中,您将 c 设为常量,因此您可以将 1 参数函数传递给 fzero。您也可以将x
设为常量,并仅传递c
的函数。以上是关于Matlab 编码器 fzero 函数的主要内容,如果未能解决你的问题,请参考以下文章