0
我有集成嵌套函數的一個問題處理在Matlab:MATLAB積分函數處理嵌套
fun = @(x,y) 2*x*y;
y = @(x,a) 5*a*x;
int = integral(@(x)fun(x,y(x,5)),0,2)
實際嵌套的不斷深入和實際功能也越來越複雜,但是這個例子相當多描述了我的問題,會拋出「使用* 錯誤內部矩陣尺寸必須一致。'
我有集成嵌套函數的一個問題處理在Matlab:MATLAB積分函數處理嵌套
fun = @(x,y) 2*x*y;
y = @(x,a) 5*a*x;
int = integral(@(x)fun(x,y(x,5)),0,2)
實際嵌套的不斷深入和實際功能也越來越複雜,但是這個例子相當多描述了我的問題,會拋出「使用* 錯誤內部矩陣尺寸必須一致。'
這個問題的原因是MATLAB試圖向你傳遞一個向量,期望你的函數返回一個向量值。試試這個(請注意使用逐點產品):
fun = @(x,y) 2*x.*y;
y = @(x,a) 5*a.*x;
int = integral(@(x)fun(x,y(x,5)),0,2)
這本來自相關MATLAB文件摘錄:
對於標值的問題,函數
y = fun(x)
必須接受一個向量參數,x
,並返回矢量結果,y
。這通常意味着樂趣必須使用數組運算符而不是矩陣運算符。例如,使用。*(times)而不是*(mtimes)。如果將'ArrayValued'選項設置爲true,則fun必須接受標量並返回固定大小的數組。
非常感謝。它適用於點明智的產品 – Manuel 2015-03-19 13:13:23