Matlab错误:在提示符或脚本中不允许使用函数定义

时间:2017-07-13 10:25:52

标签: arrays matlab

我写了这段代码。但它显示错误

  

在提示符或脚本中不允许使用函数定义。

任何人都可以帮我解决这个问题吗?我究竟做错了什么?

function [npv, pvAtPeriod]= npvFlow([100 -5 100],0.04, [1 2 4])
    if isscalar(periods)      
        t = 1:4;
    else        
        t = periods;
    end
    if isscalar(payments)      
        c = zeros(1,length(t));
        c = c+payments;
    else 
        c = payments;
    end
    if numel(c)~=numel(t)
        disp('Error: Payment or period missing.')
        return
    end

    r=rate;

    pvPeriod = c./(1+r).^t;
    npv=sum(pvPeriod);

    pvAtPeriod = [t', pvPeriod'];
end

1 个答案:

答案 0 :(得分:1)

正如它在错误中所述,脚本中不允许使用函数。我们无法看到此脚本是如何启动的,但我打赌它不是function somefunction() ...请参阅this documentation

特别是:

  

函数是可以接受输入参数并返回输出参数的文件[...]
  函数[file]的第一行以关键字function。

开头

您必须将函数npvFlow保存在单独的文件中(在Matlab路径上,名为npvFlow.m)或将整个脚本保存在函数或中从一个函数开始。请注意,如果将脚本更改为函数,则运行后不会在工作区中留下任何内容。

传递参数的语法也是无效的(参见Steve的评论)。如果您只希望修复这些参数,那么npvFlow就不需要成为一个函数,您也可以通过使整个事物成为有效的脚本来解决此问题。功能!