我在处理scilab函数时遇到麻烦;我有一个1x6向量形式的输出,我想有一种简单的方法使其与6变量函数一起工作。
v = [1,2,3,4,5,6] ;
function z=f(a,b,c,d,e,f)
...
endfunction
f(v) //returns error
谢谢
Scilab没有直接类似于Pythonfcn(*v)
函数调用的函数,该函数会将v的条目解释为多个参数。
如果你希望能够调用您的功能无论是fcn(1,2,3,4,5,6)
或v = 1:6; fcn(v)
,那么你就需要这一条款添加到它的开头:
function z=fcn(a,b,c,d,e,f)
if argn(2)==1 then
[a,b,c,d,e,f] = (a(1),a(2),a(3),a(4),a(5),a(6))
end
// rest of function
z = a+b+c+d+e+f
endfunction
现在v=1:6; fcn(v)
返回21,就像这样fcn(1,2,3,4,5,6)
。
条件argn(2)==1
检查该函数是否接收到一个参数而不是预期的6;否则,返回0。如果是这种情况,则假定它是一个向量。如果该向量没有足够的元素(6)来进行元组分配,则会引发错误。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句