Scilab не имеет прямого аналога вызова fcn(*v)
функции Python, которая будет интерпретировать записи клиновых как несколько аргументов.
Если вы хотите быть в состоянии назвать вашу функцию или как 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) для назначения набора, возникает ошибка.