急!!!matlab中复杂函数矩阵求定积分报错,请教高手!

来源:百度知道 编辑:UC知道 时间:2024/06/04 20:05:58
有一个4*4的矩阵,矩阵的每一个元素都是变量x的函数,且表达形式非常复杂,现在想对该矩阵进行定积分。matlab中提供的积分函数int和quad都用过,程序也都报错。
采用quad函数:
fisherf1(1,1)=quad(@stef1_11,0,20)%%调用quad函数计算矩阵第一个元素的积分
其中,定义函数
function fste1_11 = stef1_11(stef1)
fste1_11=stef1(1,1)%%%stef1是4*4的变量x的函数矩阵
matlab报错如下:
??? Attempted to access y(7); index out of bounds because numel(y)=1.

Error in ==> quad at 70
if ~isfinite(y(7))

Error in ==> fcs at 50
fisherf1(1,1)=quad(@stef1_11,0,20);

fisherf1(1,1)=quad(@stef1_11,0,20)

把@去掉应该就可以了。

因为那个4*4的函数矩阵stef1,其中的stef1(1,1)已经是一个函数句柄了,相当于已经带@的了。

而@stef1_11指的是函数stef1_11的句柄,而不是你要求的句柄。
你要求的句柄是函数stef1_11的值,不是句柄。