如何知道 Scilab 函数的参数个数
How to know the number of arguments of a Scilab function
是否可以确定 Scilab 中函数的参数个数?
假设我有一个函数如下:
function T = test(t,x)
T = t*x
endfunction
在这种情况下,我应该得到 2 作为输出。
更具体地说,我的目标是知道参数的数量,但唯一地使用函数的名称。
function N = NumberArgument(F)
// F is a function
N = ....
endfunction
所以我想要
a = NumberArgument(test)
a = 2
感谢您的回答
是的,使用 argn
您可以确定输入和输出参数的数量
function T = test(t,x)
[lhs,rhs]=argn(0);
disp(rhs);
T = t*x;
endfunction
使用macrovar
您可以确定函数外部参数的数量
function N = NumberArgument(F)
// F is a function
all_vars = macrovar(F);
in_vars = all_vars(1);
N = size(in_vars, 1);
endfunction
disp(NumberArgument(test))
短:
我觉得不可能。
长:
您想获取函数的 type signature。
经过一些研究,我发现用户定义的函数和一些内置函数(在 scilab 中编码的函数)具有相同的类型:
-->deff('[r] = test(a, b)', 'r=a*b');
-->type(test)
ans =
13.
-->type(plot)
ans =
13.
我认为您无法获得有关函数的更多信息,而不是类型。
现在,假设你想要情节的签名。
正如您所看到的 here 有多个签名(请注意 plot()
没有参数没有记录)。
几乎所有的 scilab 函数都使用 argn 并且签名的可能性是无限的...
是否可以确定 Scilab 中函数的参数个数?
假设我有一个函数如下:
function T = test(t,x)
T = t*x
endfunction
在这种情况下,我应该得到 2 作为输出。 更具体地说,我的目标是知道参数的数量,但唯一地使用函数的名称。
function N = NumberArgument(F)
// F is a function
N = ....
endfunction
所以我想要
a = NumberArgument(test)
a = 2
感谢您的回答
是的,使用 argn
您可以确定输入和输出参数的数量
function T = test(t,x)
[lhs,rhs]=argn(0);
disp(rhs);
T = t*x;
endfunction
使用macrovar
您可以确定函数外部参数的数量
function N = NumberArgument(F)
// F is a function
all_vars = macrovar(F);
in_vars = all_vars(1);
N = size(in_vars, 1);
endfunction
disp(NumberArgument(test))
短:
我觉得不可能。
长:
您想获取函数的 type signature。
经过一些研究,我发现用户定义的函数和一些内置函数(在 scilab 中编码的函数)具有相同的类型:
-->deff('[r] = test(a, b)', 'r=a*b');
-->type(test)
ans =
13.
-->type(plot)
ans =
13.
我认为您无法获得有关函数的更多信息,而不是类型。
现在,假设你想要情节的签名。
正如您所看到的 here 有多个签名(请注意 plot()
没有参数没有记录)。
几乎所有的 scilab 函数都使用 argn 并且签名的可能性是无限的...