2

我在互联网上找到了以下代码。我是matlab的新手。现在每当我复制粘贴此代码时都会出现问题,然后它会显示错误消息。

function[p] = lagrange_interpolation(X,Y)
|
Error: Function definitions are not permitted in this context. 

代码片段是:

function[p] = lagrange_interpolation(X,Y)

L = zeros(n);

p = zeros(1,n);


% computing L matrice, so that each row i holds the polynom L_i

% Now we compute li(x) for i=0....n  ,and we build the polynomial 

for k=1:n

    multiplier = 1;

    outputConv = ones(1,1);

    for index = 1:n

        if(index ~= k && X(index) ~= X(k))

            outputConv = conv(outputConv,[1,-X(index)]);

            multiplier = multiplier * ((X(k) - X(index))^-1);

        end

    end

    polynimialSize = length(outputConv);

    for index = 1:polynimialSize

        L(k,n - index + 1) = outputConv(polynimialSize - index + 1);

    end

    L(k,:) = multiplier .* L(k,:);

end

      % continues 

        end
4

1 回答 1

2

很可能,您可能正试图将随机代码与您的函数混合在一起。M文件有两种类型:

  • 脚本 - 具有独立于其他任何内容执行的“随机”代码
  • 函数 - 是函数的“经典”定义

您不能将两者混为一谈(这是一个谎言,但现在是一个很好的谎言)。因此,如果您要定义一个函数,那应该是 .m 文件中的唯一代码。

您应该稍后在命令窗口或另一个函数或脚本中使用此函数,方法是通过p = blahblah(bleaurgh);.

TL;DR:确保函数代码是脚本文件中的唯一代码,用相同的名称保存它。m,从其他地方调用函数。

于 2012-10-11T16:00:14.627 回答