有没有办法为函数的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是矩阵,则这是微不足道的。但是,我可以使用具有多个元素的矩阵,其中每个元素都是输入功能的输入吗? (如示例中所示)答案 0 :(得分:2)
另一个选择是使用单元格数组生成comma separated list:
x=-10:0.1:10;
a={1,2};
normpdf(x,a{:});
答案 1 :(得分:0)
如果你自己创造了自己的功能,矩阵可以作为一个参数。但在这种特定情况下,函数已被编写为接受标量参数。因此,您必须将两个变量分别为a(1)和a(2)逗号。