无法将函数作为参数传递给Matlab

时间:2019-05-24 23:37:52

标签: matlab function

我正在学习matlab,我在代码上遇到了一些问题。

首先,我创建了f1.m:

    function y = f1(x)
       y = exp(x) - pi;
    end

然后,我构建了一个代码,通过平分线方法找到根:

function [root, err, n] = bissect(f, a, b, errMax)


    m = (a+b)/2;
    err = (b-a)/2;
    n = 0;


while err > errMax


    if f(a)*f(m) > 0
        a = m;
    else
        b = m;
    end

    m = (a+b)/2;
    err = (b-a)/2;
    n = n + 1;
end

root = m;
end

但是,当我跑步时

>> [r,err,n] = bissect(@f1, 1, 2, 0.1);

它返回:

  

警告:下标索引必须为整数值。

     

在C:\ matlabR12 \ work \ Codigo \ bissect.m中的第12行

     

???索引超出矩阵尺寸。

     

==> C:\ matlabR12 \ work \ Codigo \ bissect.m中的错误

     

第12行==>如果f(a)* f(m)> 0

我在做什么错? 我正在使用Matlab R12

0 个答案:

没有答案