Why is it that when I am trying to create a function, the run button at the top turns grey?
3 views (last 30 days)
Hello. I am trying to create a user-defined function containing a function call, F=temp_conv(C), that will convert the temperature from Celsius to Fahrenheit and evaluated at C=27. However, whenever I type function, the run arrow at the top turns grey. If anyone could offer any tips or suggestions, it would be very helpful. Thank you.
John D'Errico on 25 Sep 2022
Edited: John D'Errico on 25 Sep 2022
You DON'T use run on a function. That makes no sense I'm afraid.
Instead, functions in MATLAB are things you would call from either a script, or another function. But no matter what, you cannot run a function, and therefore, the ability to use run is disabled once you create it as a function.
Compare that instead to when you write a script. A script is just a list of lines of code, as if you would write them sequentially in the command window. A script uses the base MATLAB workspace.
A function has its own workspace. You pass it arguments, which are the only things it sees. (Nested functions are a subtly different animal, but even so, they cannot be "run" either.) A function returns results, as arguments. It cannot be run like a script.
Image Analyst on 25 Sep 2022
Try creating a regular script, not a live script. I tried it and the run button is enabled. However you need to have your function code lines defined, AFTER your script lines, not before like you have it. The "end" you have finishes off the function, then you're calling the function after that. In MATLAB you need the reverse. Call the function in the first lines (top of the file) then define your function(s) after your script program (if you're going to combine them in a single .m file) or else put your functions into their own m-files.