Unable to convert expression into double array
114 ビュー (過去 30 日間)
古いコメントを表示
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
0 件のコメント
採用された回答
Areej Varamban Kallan
2019 年 2 月 7 日
編集済み: Areej Varamban Kallan
2019 年 2 月 7 日
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 件)
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!