MATLAB: Is there a right order for input variables in a function

main scriptmatlab function

Good day everyone.
I have written a function that is called from the main program and the function input variables are obtained from the main program. But I observed that the input variables values are mixed up. For example, if the values are a=3; b=9; c=-1; in the main program, these values are mixed up as a=-1; b=3; c=9 or similar thing. Consequently, my program is not running. How do I make the function see the input variables correctly as it is in the main program?
Thanks so much

Best Answer

"Is there a right order for input variables in a function?"
Yes: MATLAB function inputs are positional:
The 1st input provided is the 1st input argument inside the function.
The 2nd input provided is the 2nd input argument inside the function.
etc.
The names of any variables that might be used when calling a function are (and should be) totally irrelevant. Beginners sometimes like to use the same names inside a function and also for the names of variables when they call that function, but often this just adds to their confusion as they think that those two independent sets of names should "match up" somehow, regardless of the order they provide them in.
"How do I make the function see the input variables correctly as it is in the main program?"
You provide the input data in the correct order, based on the specification of that function. For example:
function Z = mysub(A,B)
Z = A - B;
end
This will subtract the second input argument from the first input argument (regardless of any possible variable names that might be used when calling the function):
>> A = 10;
>> B = 4;
>> mysub(A,B)
ans = 6
>> B = 10;
>> A = 4;
>> mysub(B,A)
ans = 6
I strongly recommend that you do NOT write your code assuming that the calling variable names are anything like the ones used inside the function.