Matrix Dimensions must agree using integral
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
atsprink
am 21 Feb. 2018
Bearbeitet: Torsten
am 23 Feb. 2023
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 Kommentare
Akzeptierte Antwort
atsprink
am 21 Feb. 2018
3 Kommentare
Lucas Ivan
am 23 Feb. 2023
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
am 23 Feb. 2023
Bearbeitet: Torsten
am 23 Feb. 2023
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.
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Logical finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!