matlab 读取 回退 行,Matlab / Octave函数处理程序和nargin

我在Octave编写程序,我遇到了一个问题,我实现了Gauss-Legandre正交,我向Gauss-Legandre函数传递了一些参数,并且我将函数传递给了一个单元格多维数据集,所以我可以传递一些函数一时间我有这段代码:

for weight=1:length(w)

temp=1;

for fun=1:length(c)

%liczenie iloczynu f(x_i)g(x_i), x_i - pieriwastki wielomianu Legandra

f=c{fun};

nargin(func2str(c{fun}))

if (nargin (func2str(c{fun})) == 1)

disp('a');

temp*=c{fun}((b-a)/2 * x(weight) + (a+b)/2);

else

(b-a)/2 * x(weight) + (a+b)/2;

temp*=f((b-a)/2 * x(weight) + (a+b)/2,I,points);

end

end

%mnozenie wyniku przez odpowiedni wspolczynnik - wage

temp*=w(weight);

result+=temp;

end

在单元阵列中,有函数处理程序来处理我想要集成的函数 . 根据函数的参数数量,我想使用两个不同的函数调用 . 如果在单元格数组中有一个函数的处理程序,该函数写在与我的Octave工作目录相同的目录中的.m文件中,一切正常,但是当我在Octave运行时定义函数时,例如:

function result=a(x)

result=x*x

end

类型

c{1}=@a

并将此单元格数组传递给我的函数Kwadratury,存在一个nargin错误

error: nargin: invalid function

error: called from:

为什么这样,我怎么解决它,所以我不仅可以在.m文件中定义函数,还可以在Octave中定义函数 .

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值