Print subfunction names to text file

3 views (last 30 days)
I need to print the function names of subfunctions inside a classdef to a .txt file. I'd like to do it quickly without having to go in and copy paste each function name everytime i revise this code. This will be used to generate a change log for a README.
here's my basic setup:
classdef master
methods(Static)
function f1()
%stuff
end
function f2()
%stuff
end
function f3()
%stuff
end
end
end
And I want to run a function in matlab that will output something like:
File names in master.m:
master.f1()
master.f2()
master.f3()
into a text file. I know how to save as a text file, and other fprintf formatting is easy. I just don't know how to go into the classdef and grab those function names. Is there an easy way to do this?
I'm using MATLAB R2018a

Accepted Answer

Adam
Adam on 16 Jan 2019
Edited: Adam on 16 Jan 2019
m = methods( 'master' )
will give you the information you need. Then you can tag the class name on the front or whatever else you want for formatting. Note this will only give the public functions though. If you need to delve into more detail then
doc metaclass
can do this, e.g.
mc = metaclass( 'master' );
methodList = mc.MethodList;
This will give you all functions, including private ones, with lots of detail too. Again for just the names you can then do:
methodNames = { methodList.Name };
Feel free to nosey around on the command line at the other details you get in mc and in methodList also if they are of use to you for filtering the method list in some way, such as by Static functions, Abstract functions, etc.

More Answers (0)

Categories

Find more on Software Development Tools in Help Center and File Exchange

Products


Release

R2018a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!