在 Matlab 中积分向量的乘积
Integrating product of a vector in Matlab
我正在尝试集成一个涉及向量乘法的函数。但是我一直收到错误消息。
假设 alphas 是一些向量。
并考虑以下代码:
g = @(x)prod(x.*alphas);
integral(g,-10,10);
这会产生以下错误:
Error using .*
Matrix dimensions must agree.
Error in @(x)prod(x.*alphas)
现在,换一个幼稚的观点。 g 是一个标量函数。如果 x 是某个数字,那么 g(x) 也是一个数字。
我刚接触Matlab,不太明白这个问题。
任何帮助都会有所帮助。
谢谢。
如果 alphas
是一个向量,它应该对每个 x
都有一个值。例如,当您给 integral()
一个函数进行积分时,它会尝试将函数 g
计算为 g(-10:0.1:10)
。如果不存在与 x
相同数量的 alpha,则会抛出该错误。
这里使用integral()
的问题是,你无法控制在integral
中给予g
的x
的数量,因此,你不能如果您想集成,请按照您的方式定义 g
。
编辑: 以下将完成这项工作!谢谢@Andras Deak
integral(g,-10,10,'arrayvalued',true);
我正在尝试集成一个涉及向量乘法的函数。但是我一直收到错误消息。
假设 alphas 是一些向量。 并考虑以下代码:
g = @(x)prod(x.*alphas);
integral(g,-10,10);
这会产生以下错误:
Error using .*
Matrix dimensions must agree.
Error in @(x)prod(x.*alphas)
现在,换一个幼稚的观点。 g 是一个标量函数。如果 x 是某个数字,那么 g(x) 也是一个数字。
我刚接触Matlab,不太明白这个问题。 任何帮助都会有所帮助。 谢谢。
如果 alphas
是一个向量,它应该对每个 x
都有一个值。例如,当您给 integral()
一个函数进行积分时,它会尝试将函数 g
计算为 g(-10:0.1:10)
。如果不存在与 x
相同数量的 alpha,则会抛出该错误。
这里使用integral()
的问题是,你无法控制在integral
中给予g
的x
的数量,因此,你不能如果您想集成,请按照您的方式定义 g
。
编辑: 以下将完成这项工作!谢谢@Andras Deak
integral(g,-10,10,'arrayvalued',true);