Matrix Dimensions must agree using integral
조회 수: 4 (최근 30일)
이전 댓글 표시
Hello all,
I am trying to integrate over a function.
% calculation of f(b)
b = exp((-q*Vj)/(2*kB*Temp))*cosh((Et-Ei)/((kB*Temp)+0.5*(log(tau_p0/tau_n0))));
% integrate over x while varying b
fcn_b = zeros(1,length(b));
fcn = @(x)1./((x.^2)+(2.*b.*x)+1);
fcn_b = integral(fcn,0,Inf);
end
But I receive an error after the fcn = @x line saying matrix dimensions must agree.
The size of b => 1 x 141. Any help would be appreciated.
댓글 수: 2
채택된 답변
atsprink
2018년 2월 21일
댓글 수: 3
Lucas Ivan
2023년 2월 23일
Hello everyone! I was having the same error and I could solve it with this. However, any idea on why we need to add this argument?
Torsten
2023년 2월 23일
편집: Torsten
2023년 2월 23일
However, any idea on why we need to add this argument?
If you don't add this argument, MATLAB calls your function to be integrated with a vector of values for the integration variable and expects your function to return a vector of the same size. This won't happen since your function itself is a vector of functions - depending on the vector b. If you set "ArrayValued" to "true", MATLAB "knows" that you want to integrate a vector-valued function and calls it only with single (scalar) values for the integration variable.
추가 답변 (0개)
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!