使用单个矩阵作为函数的多个输入参数

时间:2014-03-31 13:30:15

标签: matlab function input

有没有办法为函数的MULTIPLE输入参数使用矩阵?

示例:

x=-10:0.1:10; 
a=[1 2];
normpdf(x,a);
而不是 normpdf(x,a(1),a(2));

我可以用eval这样做,

for i=1:nargin(@normalpdf)-1 %in order to get parameter size, taking out the first one which for a pdf is usually x
    if i>1
        str=[str ','];
    end
    str=[str 'x(' num2str(i) ')'];
end
normpdf(x, eval(str));

但是,我想知道在不使用eval的情况下是否有任何方法可以做同样的事情。

编辑:我想说清楚。当然,如果将矩阵定义为fun(a,b),其中b是矩阵,则这是微不足道的。但是,我可以使用具有多个元素的矩阵,其中每个元素都是输入功能的输入吗? (如示例中所示)

2 个答案:

答案 0 :(得分:2)

另一个选择是使用单元格数组生成comma separated list

x=-10:0.1:10; 
a={1,2};
normpdf(x,a{:});

答案 1 :(得分:0)

如果你自己创造了自己的功能,矩阵可以作为一个参数。但在这种特定情况下,函数已被编写为接受标量参数。因此,您必须将两个变量分别为a(1)和a(2)逗号。