I get an error message typing this:
integral(@(z)(sin(z)*exp(1i*z)),0, 1)
Here is the error message:
Error using *
Inner matrix dimensions must agree.
Error in @(z)(sin(z)*exp(1i*z))
Error in integralCalc/iterateScalarValued (line 314)
fx = FUN(t);
Error in integralCalc/vadapt (line 132)
[q,errbnd] = iterateScalarValued(u,tinterval,pathlen);
Error in integralCalc (line 75)
[q,errbnd] = vadapt(@AtoBInvTransform,interval);
Error in integral (line 88)
Q = integralCalc(fun,a,b,opstruct);

 Réponse acceptée

Star Strider
Star Strider le 11 Juil 2015

0 votes

You likely need to vectorise it:
integral(@(z)(sin(z).*exp(1i*z)),0, 1)
Note the vectorised multiplication (.*). See Array vs. Matrix Operations for a full discussion.

Plus de réponses (1)

Roger Stafford
Roger Stafford le 11 Juil 2015

0 votes

You must define your integrand function so that it will accept a vector input. In this case that means put a dot in the multiplication symbol:
integral(@(z)(sin(z).*exp(1i*z)),0, 1)

Catégories

En savoir plus sur MATLAB dans Centre d'aide et File Exchange

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by