How do I make a generic function?
Mostrar comentarios más antiguos
I need to make a function that takes the lowest score out of an array, takes the sum of the rest and averages them, and then creates a vector with each score in it.
The first problem is that I'm struggling to actually create a function. I'm not sure how to begin writing this in MATLAB, and I cannot quite understand the help I find.
Does anyone have any examples of functions and how to create them?
Respuestas (1)
James Tursa
el 6 de Mzo. de 2018
Editada: James Tursa
el 6 de Mzo. de 2018
Here is how you start: Use the editor to make a file. Suppose you wanted the function called myfun. Then use the editor to start writing that file:
edit myfun.m
In that file, put the signature of the outputs and inputs like this (here I am assuming three inputs and two outputs ... the names used for these arguments are arbitrary so pick some meaningful names in your real code):
% Some text here to briefly describe the function
% Some more text describing the inputs and outputs
function [out1,out2] = myfun(in1,in2,in3)
% put your code here
end
Push the "disk" button to save the file. Then to use the file, simply call it at the command line or from within a script or function file like this:
A = something;
B = something;
C = something;
[D,E] = myfun(A,B,C);
3 comentarios
Tobias
el 15 de Feb. de 2023
Is it necessary to have the function name match the file name or can i have a file with multiple different functions in it?
John D'Errico
el 15 de Feb. de 2023
Editada: John D'Errico
el 15 de Feb. de 2023
You can have multiple functions in one file, but essentially, your code will only see the main function at the top level. The other functions can be seen as sub-functions to the top level function. (Actually, that is not totally true, since you can return function handles, but that is way beyond the scope of this question.)
So no, you cannot have a large mess of functions in one file and have them all directly accessible to all of your code.
Does the function name need to match the file name? If it does not match, then MATLAB will actually use the FILE name. It is far safer and better to have them match though, as confusion will reign supreme otherwise.
Walter Roberson
el 15 de Feb. de 2023
If you want to create a library of functions in the same file then you can create a class in which the functions are marked as static members of the class. Then once the class is loaded, the functions will be visible to matlab.
Categorías
Más información sobre Scripts en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!