Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 使用向量计算的带乐趣的积分2_Matlab - Fatal编程技术网

Matlab 使用向量计算的带乐趣的积分2

Matlab 使用向量计算的带乐趣的积分2,matlab,Matlab,我是MATLAB新手。希望使用integral2,如下所示 function num = numer(x) fun=@(p,w) prod((p+1-p).*(1-w).*exp(w.*x.*x/2)) num= integral2(fun ,0,1,0,1) end 我从一开始就犯了几个错误 Error using .* Matrix dimensions must agree. Error in numer>@(p,w)prod(p+(1-w).*exp(w.*x.*x/2))

我是MATLAB新手。希望使用integral2,如下所示

function num = numer(x)
fun=@(p,w) prod((p+1-p).*(1-w).*exp(w.*x.*x/2))
num= integral2(fun ,0,1,0,1)
end
我从一开始就犯了几个错误

Error using  .* 
Matrix dimensions must agree.

Error in numer>@(p,w)prod(p+(1-w).*exp(w.*x.*x/2)) (line 5)
fun=@(p,w) prod(p+(1-w).*exp(w.*x.*x/2))
你能告诉我我做错了什么吗。 感谢帮助中提供的以下帮助:

所有输入函数必须接受数组作为输入并进行操作
元素方面。函数Z=FUN(X,Y)必须接受数组X和Y的
相同的大小并返回相应值的数组

x
为非标量时,函数
fun
不会这样做。通过在
prod
中包装所有内容,函数始终返回标量。假设您的
prod
位于正确的起始位置,并利用了指数的特性,我相信此版本将满足您对向量
x
的需求:

x = [0 1];
lx = length(x);
fun = @(p,w)(p+1-p).^lx.*(1-w).^lx.*exp(w).^sum(x.*x/2);
num = integral2(fun,0,1,0,1)

或者,
fun=@(p,w)(p+1-p)。^lx.*(1-w)。^lx.*exp(sum(x.*x/2))。^w
可以使用。

@user3003027:我的回答有助于解决您的问题吗?如果它对你有用,请接受它。非常感谢。