MATLAB 中积分函数的乘法误差

Multiplication Error in Integral Function in MATLAB

我想编写一个结合使用 sin(x) 和 cos(x) 函数的函数,然后对其进行积分以获得标量值。然而,当我 运行 代码时,我得到一个错误,指出矩阵的维度在积分函数中不匹配,但它们实际上匹配。我将 1x2 矩阵与 2x1 矩阵相乘。我应该得到乘法的标量值。你能帮忙吗?

y = zeros(2,2);
y(1,1) = 100;
y(1,2) = 5;
y(2,1) = 200;
y(2,2) = 10;

fun = @(x) ([sin(x) cos(x)] * [y(:,1) - y(:,2)]);

q = integral(fun,0,Inf);

我找到了解决这个问题的办法。我没有使用矩阵,而是将函数转换为标量形式。这样就不会出现乘法错误。

fun = @(x) sin(x)*(y(1,1)-y(1,2)) + cos(x)*(y(2,1)-y(2,2));