如何获取matlab函数参数

时间:2012-10-05 11:52:21

标签: matlab

  

可能重复:
  How do I retrieve the names of function parameters in matlab?

我正在寻找一种方法来获取传递给我的所有参数,或者期望我的函数。 args()命令似乎是理想的,但仅适用于程序。无论如何都是这样做的。

我之所以这样做是因为我可以用更少的行来检查。即通过编写一个检查然后执行所有args来检查所有输入是否为数字。因此,如果有一个好的选择,我愿意接受这些想法。

由于

2 个答案:

答案 0 :(得分:3)

您正在寻找的是varargin,它使您能够使用可变数量的输入参数。

答案 1 :(得分:3)

你可以使用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});