MATLAB Fix MATLAB Code Error: Input Argument "S" is Undefined

  • Thread starter Thread starter plexus0208
  • Start date Start date
  • Tags Tags
    Function Matlab
AI Thread Summary
The discussion centers around an error encountered in MATLAB code, specifically the message indicating that the input argument "S" is undefined. The user is trying to run a function named RCPrototype, which requires three input parameters: AR, S, and lambda. The error arises because "S" is not defined before the function is called. It is suggested that the user may be attempting to run the function directly from the file rather than from another M-file, which is necessary for proper parameter definition. Additionally, there are questions regarding the definitions of "E" and "lambda" within the function, as they are referenced but not defined. The recommendation is to ensure that the function call is placed outside the function body to avoid scope issues and to clarify the definitions of all variables used in calculations.
plexus0208
Messages
49
Reaction score
0
I get the following error with my MATLAB code. Can anyone help me fix it? I don't see what is wrong.

----------------------------------------------------------------

? Input argument "S" is undefined.

Error in ==> RCPrototype at 11
Wpay = Tmax/((CDA0/S)/CL + cd/CL + CL/(pi*AR)) - Wfuse;

-----------------------------------------------------------------

MATLAB CODE:

function [WpayMax, constraint] = RCPrototype(AR, S, lambda)

Wfuse = 2.5;
Tmax = 0.70;
CDA0 = 0.004;
cd = 0.028;
CL = 1.0;
tau = 0.11;
eps = 0.03;

Wpay = Tmax/((CDA0/S)/CL + cd/CL + CL/(pi*AR)) - Wfuse;
WpayMax = max(abs(Wpay));
constraint = 0.018*((Wfuse + Wpay)/(E*tau*(tau^2+eps^2)))*(1+lambda)^3*(1+2*lambda)*(AR^3);

[WpayMax, constraint] = RCPrototype(0.5,0.5,0.5);

end
 
Physics news on Phys.org
has S been defined prior to calling the function?? if not, then it isn't defined within the function itself.
 
Try calling the function from another M-file. I'm guessing you're trying to directly run the function file.

Also, what are "E" and "lambda" defined as in your function?
 
You're calling the function from within the function:

Code:
constraint = 0.018*((Wfuse + Wpay ...

[B][WpayMax, constraint] = RCPrototype(0.5,0.5,0.5);[/B]

end

You need to put that outside the function body.
 
Back
Top