why cant multiply an anonymous function with a changing variable?

3 visualizaciones (últimos 30 días)
clc
clear
f=10000;
w=2*pi*f;
mr=linspace(1,10,5);
m0=pi*4e-7;
m=mr.*m0; %magnetic permability
s1=10*1e6;
a1=@(a) sqrt(a.^2+1j.*w.*m.*s1);
x=integral(a1,1,3000)
%%%% the result at matlab is:
Error using +
Matrix dimensions must agree.
  1 comentario
Rik
Rik el 3 de Abr. de 2020
Why did you flag your question as unclear? Apart from not using correct formating for your code I don't see how your question is unclear. I will remove the flag. If you think this question needs a flag after reading this thread feel free to flag your question again, adding an explanation.

Iniciar sesión para comentar.

Respuesta aceptada

Steven Lord
Steven Lord el 3 de Abr. de 2020
integral will call your function with a vector of values and expects your function to return a vector of the same size. w and s1 are scalars but m is a vector. There's no guarantee that m and a will be vectors of the same size, and even if they were I'm not certain that would do what you want.
If the function you're trying to integrate is an array-valued function, specify the 'ArrayValued' option with value true in your integral call. This will cause integral to call your function with a scalar instead.
  1 comentario
Giannis Zafeiroudas
Giannis Zafeiroudas el 3 de Abr. de 2020
Okay i changed it.
It worked and the result that i get its the right one.
Thanks a lot!
Best wishes!

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Entering Commands en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by