我写了这段代码。但它显示错误
在提示符或脚本中不允许使用函数定义。
任何人都可以帮我解决这个问题吗?我究竟做错了什么?
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
答案 0 :(得分:1)
正如它在错误中所述,脚本中不允许使用函数。我们无法看到此脚本是如何启动的,但我打赌它不是function somefunction()
...请参阅this documentation。
特别是:
函数是可以接受输入参数并返回输出参数的文件[...]
开头
函数[file]的第一行以关键字function。
您必须将函数npvFlow
保存在单独的文件中(在Matlab路径上,名为npvFlow.m
)或将整个脚本保存在函数或中从一个函数开始。请注意,如果将脚本更改为函数,则运行后不会在工作区中留下任何内容。
传递参数的语法也是无效的(参见Steve的评论)。如果您只希望修复这些参数,那么npvFlow
就不需要成为一个函数,您也可以通过使整个事物成为有效的脚本来解决此问题。功能!