Error - Undefined function or variable
显示 更早的评论
Hello everybody.
I am trying to make an if loop but the problem is that "epsc" is undefined veriable.
Is there a better way to make it?
Thank you very much.
b=300; %mm
d=400; %mm
fc=40; %Mpa
Ecshah=57000/145*(fc*145)^0.5; %Mpa
Es=200000; %Mpa
As=2400; %mm^2
fy=400; %Mpa
eps0=1.027*10^-7*fc*145+0.00195;
epscu=3.5/1000;
kshah=0.025*fc*10^3;
A=Ecshah*eps0/fc;
epscmv = linspace(0.05, 3.5, 500)*1E-3;
for i=1:numel(epscmv);
epscm = epscmv(i);
if epsc<=eps0
funCshah=@(epsc) fc*(1-(1-epsc./eps0).^A);
elseif epsc>eps0
funCshah=@(epsc) fc*exp(-kshah*(epsc-eps0).^1.15);
end
end
compression=@(c) b*fc*c/epscm*integral(funCshah,0,epscm)/1000;
tension=@(c) min(Es*(d-c)/c*epscm*As/1000,fy*As/1000);
c(i)=fsolve(@(c) compression(c)-tension(c),1);
Getting the error:
Undefined function or variable 'epsc'.
Error in Untitled (line 16)
if epsc<=eps0
4 个评论
Jim Riggs
2019-11-25
You must define the variable "epsc".
What is it? Assign it a value.
Shimon Katzman
2019-11-25
Jim Riggs
2019-11-25
Please explain. What is the value of epsc?
In the context:
funCshah=@(epsc) fc*(1-(1-epsc./eps0).^A)
and also
funCshah=@(epsc) fc*exp(-kshah*(epsc-epsc0).^1.15)
epsc is a place-holder and represents the argument of function funCshah. When function funCshah is called, a numerical value must be supplied as the argument to the function. Therefore, when function funCshah is called, internally epsc has the value of the argument to the function.
In the context
if epsc<=eps0
This is a comparison of two values, so epsc and eps0 must both be defined as variables, and their values are compared. The error message that you are getting is that, in this context, the variable epsc has no definition. It must be defined.
Shimon Katzman
2019-11-26
采纳的回答
更多回答(2 个)
Line 16:
if epsc<=eps0
Variable epsc is not defined.
类别
在 帮助中心 和 File Exchange 中查找有关 Programming 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!