如何让多个变量函数与向量一起工作

时间:2015-06-20 10:34:11

标签: function vector scilab

我在处理scilab函数方面遇到了麻烦;我有一个1x6向量形式的输出,我想有一个简单的方法来使它与6变量函数一起工作。

v = [1,2,3,4,5,6] ;
function z=f(a,b,c,d,e,f)
...
endfunction
f(v) //returns error

谢谢

1 个答案:

答案 0 :(得分:1)

Scilab没有Python的fcn(*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;如果是这种情况,则假定它是一个向量。如果该向量没有足够的元素(6)用于元组赋值,则抛出错误。