我有一個匿名函數匿名函數: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 + ...'? –
是的,對不起,我會糾正我的問題 –
你的結果應該是多少(對於給定的示例值)? –