Borrar filtros
Borrar filtros

Unable to convert expression into double array

41 visualizaciones (últimos 30 días)
Tommaso Attili
Tommaso Attili el 7 de Feb. de 2019
Respondida: Bo Zhang el 18 de Nov. de 2020
When I run my code, I keep getting this error: "The following error occurred converting from sym to double: Unable to convert expression into double array."
r=50;
d=50;
a=12.61;
syms x
syms y
J=(besselj(0,x*y*a/d))*((1-y^2)^0.5)*y;
B1=int(J, y, [0 1]);
E1=zeros(1,301);
t=0:0.1:30;
for i=1:301
B=B1*besselj(0,x*r/d)*((x*tanh(x))^0.5)*sin((((9.81/d*t(i)^2)*x)*tanh(x))^0.5)*x;
E1(i)=vpaintegral(B, x, [0 2000])
end

Respuesta aceptada

Areej Varamban Kallan
Areej Varamban Kallan el 7 de Feb. de 2019
Editada: Areej Varamban Kallan el 7 de Feb. de 2019
Hi Tommaso,
The variable E1 is defined to be a 'double' array outside the foor loop. The variable B is of symbolic type. In the for loop you are attempting to assign each element of a 'double' array to a symbolic object, which is not correct. Redefine E1 as:
E1 = sym(zeros(1,301));
  1 comentario
Tommaso Attili
Tommaso Attili el 7 de Feb. de 2019
Hi Areej,
Thanks for you help. I'll modify my code. Then to plot E1 versus t is it right:
f=double(E1)
plot(t,f)

Iniciar sesión para comentar.

Más respuestas (1)

Bo Zhang
Bo Zhang el 18 de Nov. de 2020
thanks

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by