我有一个匿名函数匿名函数:Matlab的与阵列输入
a = [1, 2];
b = [1, 1; 3, 2];
c = [4, 2];
ff = @(x) (exp(a .* x) .* c) * b;
的问题是,当我有一个数组,说x = [1,2,3,4]
,MATLAB认为我使用的阵列和乘法,在指数,而不是每个元素。 错误是
错误使用。* 矩阵尺寸必须一致。
错误 @(X)(EXP(A * X)。* C)* B
我只需要像c1 * exp(a1 *x) * b11 + c2 * exp(a2 * x) * b21 + ...
我可以用一个for
循环,如果我想评估每个x
元素的函数,它给了我想要的答案,但我认为可能有一个最简单的方法,就像我们可以简单地使用f(x)
并获取函数中评估的每个元素的数组一样。我尝试使用arrayfun
,但我得到了同样的错误。我想跳过for
循环,因为它们对于较大的矩阵很慢。
你肯定是说'C1 * EXP(A1 * X)* B11 + C2 * EXP(A2 * X)* B21 + ...'? –
是的,对不起,我会纠正我的问题 –
你的结果应该是多少(对于给定的示例值)? –