MATLAB中积分函数的乘法误差



我想写一个函数,它使用sin(x(和cos(x(函数的组合,然后将其积分以获得标量值。然而,当我运行代码时,我得到了一个错误,说矩阵的维度在积分函数中不匹配,但它们实际上匹配。I是将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));

最新更新