Matlab 中function fx= funx(x) fx=x-2 ; z=fzero('funx',0.5)
发布网友
发布时间:2024-10-08 12:09
我来回答
共4个回答
热心网友
时间:2024-10-08 19:36
问题主要错在fzero需要的是一个函数句柄,改成下面这样就没问题了。
z=fzero(@funx,0.5)
还有很多函数既可以接收函数名字符串,也可以接收函数句柄,比如solve函数,遇到这种情况最好都用函数句柄,因为这主要是考虑向后兼容问题,才允许可以接收函数名字符串,未来趋势肯定会改为只能使用函数句柄,因为这是一种更优的方式。
结论就是:用函数句柄肯定没问题,用函数名字符串可能在某些函数中会出问题,或者会在某种情形下出问题。
例子:
1、在函数M文件中
function aa
% fzero('funx',0.5)%出错
fzero(@funx,0.5)%正确
end
function fx=funx(x)
fx = x-2;
end
2、在命令行
>> z=fzero('funx',0.5)
z =
2
>> z=fzero(@funx,0.5)
z =
2
都是可以的
热心网友
时间:2024-10-08 19:36
那么麻烦干什么,直接写: z=fzero(@(x)x-2,0.5),搞定!
公式太长?
>> y=@(x)x-2;
>> z=fzero(y,0.5)
z =
2
搞定!追问你这很好,我想知道我那个错在哪里?
参考资料:http://ke.baidu.com/view/5983565.htm
热心网友
时间:2024-10-08 19:37
function fx=funx(x)
fx = x-2;
>> z=fzero('funx',0.5)
z =
2
我运行没错呀!
热心网友
时间:2024-10-08 19:37
做任务的飘过~~