可能重复:
How do I retrieve the names of function parameters in matlab?如何获得函数参数matlab的
我正在寻找一种方式来获得传递给所有的参数,或者期望我的功能。 args()命令似乎是理想的,但仅适用于过程。有没有这样做。
我的理由我想这样做是因为我可以做更少的行检查。即检查所有输入是数字写入一个检查然后执行所有参数。所以如果有一个很好的选择,我会接受想法。
感谢
可能重复:
How do I retrieve the names of function parameters in matlab?如何获得函数参数matlab的
我正在寻找一种方式来获得传递给所有的参数,或者期望我的功能。 args()命令似乎是理想的,但仅适用于过程。有没有这样做。
我的理由我想这样做是因为我可以做更少的行检查。即检查所有输入是数字写入一个检查然后执行所有参数。所以如果有一个很好的选择,我会接受想法。
感谢
您可以使用varargin
作为petrichor提到的。 varargin
是细胞,所以你可以在一行中使用cellfun
轻松地执行所有参数的验证:
function c = test(varargin)
cellfun(@(arg)validateattributes(arg, {'numeric'}, {'integer'}), varargin);
上面的代码运行validateattributes
所有功能参数。在另一方面,如果你想命名的变量,你仍然可以将它们组合成细胞,并运行特定的测试,上面:
function c = test(i1, i2, d1, d2)
% validate integer arguments
cellfun(@(arg)validateattributes(arg, {'numeric'}, {'integer'}), {i1, i2});
% validate double arguments
cellfun(@(arg)validateattributes(arg, {'double'}, {'positive'}), {d1, d2});
你在找什么是varargin
使你的输入参数数量可变的工作。
我真的不希望可变数量的参数虽然。而且大部分代码都希望使用命名变量来使其更清晰。我只想要一种方式来完成我的断言,而不必重复代码。 – wookie1