Matlab 中function fx= funx(x) fx=x-2 ; z=fzero('funx',0.5)

[复制链接]
查看11 | 回复3 | 2012-12-1 09:26:22 | 显示全部楼层 |阅读模式
问题主要错在fzero需要的是一个函数句柄,改成下面这样就没问题了。 z=fzero(@funx,0.5)还有很多函数既可以接收函数名字符串,也可以接收函数句柄,比如solve函数,遇到这种情况最好都用函数句柄,因为这主要是考虑向后兼容问题,才允许可以接收函数名字符串,未来趋势肯定会改为只能使用函数句柄,因为这是一种更优的方式。结论就是:用函数句柄肯定没问题,用函数名字符串可能在某些函数中会出问题,或者会在某种情形下出问题。例子:1、在函数M文件中function aa% fzero('funx',0.5)%出错fzero(@funx,0.5)%正确endfunction fx=funx(x)fx =...
回复

使用道具 举报

千问 | 2012-12-1 09:26:22 | 显示全部楼层
那么麻烦干什么,直接写: z=fzero(@(x)x-2,0.5),搞定!公式太长?>> y=@(x)x-2;>> z=fzero(y,0.5)z =
2搞定!...
回复

使用道具 举报

千问 | 2012-12-1 09:26:22 | 显示全部楼层
function fx=funx(x)fx = x-2; >> z=fzero('funx',0.5)z =
2我运行没错呀!...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行