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,Inf);

解决方法

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

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