使用 ==> mtimes MATLAB 时出错
Error using ==> mtimes MATLAB
我正在尝试在 MATLAB 上对一个函数进行数值积分(我在 MATLAB 7.7 上)。这是我的代码。
fun = @(t)(cos(t)./sqrt(3)-sin(t)).^39*(cos(t)./sqrt(3)+sin(t)).^63*sqrt(2*cos(t).^2 + 2/3*sin(t).^2);
quad(fun,-pi/6,pi/6)
很遗憾,我没有遵循错误消息。谁能帮帮我?
??? Error using ==> mtimes
Inner matrix dimensions must agree.
Error in ==>
@(t)(cos(t)./sqrt(3)-sin(t)).^39*cos(t)./sqrt(3)+sin(t)).^63*sqrt(2*cos(t).^2+2/3*sin(t).^2)
Error in ==> quad at 77
y = f(x, varargin{:});
我试过函数定义是否正确。它似乎对我有用:
fun(1)
ans =
-1.4078e-007
这是我在评估为 1 时期望的正确值。我对各种输入进行了多次试验,函数 fun() 似乎可以正确计算它们!
p.s.: 我之前用过quad()。它以前对我很有效。
您的函数适用于标量输入,但不适用于向量:
>> fun(1:5)
Error using *
Inner matrix dimensions must agree.
您需要更改函数以进行逐元素乘法:
fun = @(t)(cos(t)./sqrt(3)-sin(t)).^39.*(cos(t)./sqrt(3)+sin(t)).^63.*sqrt(2*cos(t).^2 + 2/3.*sin(t).^2);
我正在尝试在 MATLAB 上对一个函数进行数值积分(我在 MATLAB 7.7 上)。这是我的代码。
fun = @(t)(cos(t)./sqrt(3)-sin(t)).^39*(cos(t)./sqrt(3)+sin(t)).^63*sqrt(2*cos(t).^2 + 2/3*sin(t).^2);
quad(fun,-pi/6,pi/6)
很遗憾,我没有遵循错误消息。谁能帮帮我?
??? Error using ==> mtimes
Inner matrix dimensions must agree.
Error in ==>
@(t)(cos(t)./sqrt(3)-sin(t)).^39*cos(t)./sqrt(3)+sin(t)).^63*sqrt(2*cos(t).^2+2/3*sin(t).^2)
Error in ==> quad at 77
y = f(x, varargin{:});
我试过函数定义是否正确。它似乎对我有用:
fun(1)
ans =
-1.4078e-007
这是我在评估为 1 时期望的正确值。我对各种输入进行了多次试验,函数 fun() 似乎可以正确计算它们!
p.s.: 我之前用过quad()。它以前对我很有效。
您的函数适用于标量输入,但不适用于向量:
>> fun(1:5)
Error using *
Inner matrix dimensions must agree.
您需要更改函数以进行逐元素乘法:
fun = @(t)(cos(t)./sqrt(3)-sin(t)).^39.*(cos(t)./sqrt(3)+sin(t)).^63.*sqrt(2*cos(t).^2 + 2/3.*sin(t).^2);