# Input function must return 'double' or 'single' values. Found 'sym'.

35 views (last 30 days)
shahin hashemi on 7 Apr 2020
Commented: Ameer Hamza on 8 Apr 2020
dear all
when i using integral command although i define z i get the following error
clc
clear all
E2=10;
E1=20;
lE=E2/E1;
n=1;
h=2;
v1=30;
v2=40;
lv=v2/v1;
sym z
Eb=1+(((2*z+h)/2*h)^n)*(lE-1)
vb=1+(((2*z+h)/2*h)^n)*(lv-1)
fun=@(z) Eb/((1-(v1^2)*(vb^2))*h)
A11=integral(fun,-1/2,1/2)
and the error :
Undefined function or variable 'z'.
Error in first (line 13)
Eb=1+(((2*z+h)/2*h)^n)*(lE-1)
and also when i use syms z instead of sym z i get the following one :
fun =
function_handle with value:
@(z)Eb/((1-(v1^2)*(vb^2))*h)
Error using integralCalc/finalInputChecks (line 511)
Input function must return 'double' or 'single' values. Found 'sym'.
Error in integralCalc/iterateScalarValued (line 315)
finalInputChecks(x,fx);
[q,errbnd] = iterateScalarValued(u,tinterval,pathlen);
Error in integralCalc (line 75)
Error in integral (line 88)
Q = integralCalc(fun,a,b,opstruct);
Error in first (line 18)
A11=integral(fun,-1/2,1/2)
i really appreciated if someone could help me with this

Ameer Hamza on 8 Apr 2020
Correct syntax is to use 'syms', not 'sym'. Also you should use matlabFunction to convert symbolic equation to numeric
clc
clear all
E2=10;
E1=20;
lE=E2/E1;
n=1;
h=2;
v1=30;
v2=40;
lv=v2/v1;
syms z
Eb=1+(((2*z+h)/2*h)^n)*(lE-1)
vb=1+(((2*z+h)/2*h)^n)*(lv-1)
fun= matlabFunction(Eb/((1-(v1^2)*(vb^2))*h))
A11=integral(fun,-1/2,1/2)

Ameer Hamza on 8 Apr 2020
Your solution is correct. You can also use this to avoid if-else block
d=10;
E2=30;
E1=10;
lE=E2/E1;
n=1;
h=2;
v1=40;
v2=40;
lv=v2/v1;
l1=30;
l2=30;
ll=l2/l1;
i=2;
syms z
Eb=(1+(((2*z+h)/2*h)^n)*(lE-1))
vb=(1+(((2*z+h)/2*h)^n)*(lv-1))
lb=(1+(((2*z+h)/2*h)^n)*(ll-1))
sum_fun(z) = Eb/((1-(v1^2)*(vb^2))*h); % this lines forces it to act as a function of z, even if the value is constant
fun = matlabFunction(sum_fun)
A11=integral(fun,-1/2,1/2, 'ArrayValued', 1)
shahin hashemi on 8 Apr 2020
wow you are my hero :D tanx
Ameer Hamza on 8 Apr 2020
Glad to be of help :D

R2017a

### Community Treasure Hunt

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

Start Hunting!