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

  • Thread starter Thread starter plexus0208
  • Start date Start date
  • Tags Tags
    Function Matlab
Click For 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.
 

Similar threads

  • · Replies 6 ·
Replies
6
Views
2K
  • · Replies 1 ·
Replies
1
Views
2K
Replies
1
Views
18K
Replies
5
Views
8K
  • · Replies 5 ·
Replies
5
Views
6K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 1 ·
Replies
1
Views
3K
Replies
4
Views
16K
  • · Replies 1 ·
Replies
1
Views
6K
  • · Replies 1 ·
Replies
1
Views
3K