Matlab User-defined function problem

In summary, the conversation discusses the process of writing a user-defined function in MATLAB to calculate grade point average (GPA) on a scale of 0 to 4. The conversation mentions an error that occurs when trying to define a function within a control statement and suggests creating the function in a separate file. The conversation also discusses the use of intermediate variables and the potential issues with writing to an input variable. Ultimately, the individual was able to make the function work by using numbers instead of letter grades for the conversion.
  • #1
BodenD
2
0

Homework Statement


Write a user-defined function that calculates grade point average (GPA) on a scale of 0 to 4 ...
https://41.media.tumblr.com/4f5e8ee38181d7c584c234138f632714/tumblr_nmnhq9p8jo1usetlso1_1280.png

The Attempt at a Solution


tumblr_nmnhq9p8jo1usetlso2_1280.png


I'm getting the error that "function definitions are not permitted in this context"
And details says "A nested function cannot be defined in a control statement"

I don't really understand how to use functions. What can I do to fix this?

Oh and I took out that extra "end"
 
Last edited by a moderator:
Physics news on Phys.org
  • #3
2 things.

1. in MATLAB you need to make functions as separate m files. so you will have one file for your function, then one file where you use it.

2. you generally don't want to write to an input to the function. you are redefining g as you use it. You might want to use an intermediate variable to write to

try g_letter and g_number
 
  • #4
Thank y'all! I figured out how to make the function work, but not with the Letter-to-number conversion I was trying to use. It didn't like the size of g when it was made of stings. So I just wrote g with the numbers instead of letter grades. Good enough!

https://41.media.tumblr.com/b768db26c487e07c370262dc345cb3e2/tumblr_nmrwnl6bpg1usetlso2_250.png
https://41.media.tumblr.com/ce387187354b1499a74fa028c76f50a4/tumblr_nmrwnl6bpg1usetlso1_1280.png
 
Last edited by a moderator:

FAQ: Matlab User-defined function problem

What is a user-defined function in Matlab?

A user-defined function in Matlab is a custom function created by the user to perform a specific task. It allows for automation and simplification of complex tasks, as well as reusability of code.

How do I create a user-defined function in Matlab?

To create a user-defined function in Matlab, you need to use the "function" keyword followed by the function name and input/output arguments. The function code should be written in a separate .m file and saved in the current directory.

What is the syntax for calling a user-defined function in Matlab?

The syntax for calling a user-defined function in Matlab is simply the function name followed by the input arguments in parentheses. The output of the function can be assigned to a variable for further use.

Can user-defined functions be nested in Matlab?

Yes, user-defined functions can be nested in Matlab. This means that a function can call another function within its code, and the nested function can also call other functions, creating a chain of functions.

Can I pass multiple outputs from a user-defined function in Matlab?

Yes, you can pass multiple outputs from a user-defined function in Matlab. This can be achieved by using square brackets to enclose the output arguments in the function definition, and separating them with commas.

Similar threads

Back
Top