File Exchange

image thumbnail

ftoc (v1.2)

version 1.2 (3.1 KB) by

Creates a table of contents of functions contained in an m-file

0 Downloads

Updated

View License

Since some of the m-files I work with are very large, and contain many nested functions and subfunctions, I find it helpful to keep a short and simple table of contents in the top comment block that tells me which functions are in the m-file, their line numbers, and how they are nested. I wrote FTOC to generate this function table of contents automatically. This was inspired by a posting by Yair Altman on the mathworks newsgroup where he described how to use the undocumented function MLINTMEX. If you're interested in getting even greater detail about m-file contents, you should check out the postings by Urs Schwarz acknowledged below.

Here's how FTOC is used:

STR = FTOC(FILE) returns a character array table of contents STR for all nested functions and subfunctions within the m-file FILE (built-in functions are not displayed). The line numbers of each function are included, and the indentation of the function names indicates the nesting order. FILE should be an m-file name. If FILE is not found, or there are no subfunctions or nested functions, STR will be an empty string.

STR = FTOC(FILE,'insert') will return a character array table of contents STR formatted for the purpose of inserting it into the header comment block of the m-file FILE. Each line begins with the character '%' and the line numbers are adjusted to account for the fact that STR will be inserted somewhere within the top comment block of FILE. (NOTE: you will want to first remove any old table of contents from the comment block before pasting the new one in, to make sure the line numbers are adjusted correctly.)

(See function help for examples)

Comments and Ratings (11)

Tim Davis

Tim Davis (view profile)

John D'Errico

John D'Errico (view profile)

While I cannot force the trash ratings by Marco to be removed, this is far better than his rating indicates. The help is quite good. This will be a useful utility if you work on large software projects in MATLAB.

John D'Errico

John D'Errico (view profile)

A N

Wording and initials suggest the poor poor rating was written by the infamous file exchange author 'marco', either by accident or in revenge. So far I thought DNFTT, but if it's true he now starts to mess up the rating system, I think there should be a way to block him and to annul his rating.

Ken Eaton

Is that comment supposed to make sense?... because it doesn't.

m p

Program don’t show this, don’t show clssification. Future versions will show classification: You=Infinite==Infinite|or|Circle*NaN...

Ken Eaton

Is there some reason someone is downloading hundreds of copies of this?

fex observer

The submissions mentioned by the first reviewer do an excellent job and are clearly superior to your program.

Ken Eaton

Thanks for the heads up, us. I don't know how I managed to miss FARG when I was looking around to see if anything like this had been done. It looks like a much more beefed-up and detailed version of what I was doing here... I'll have to check it out =).

Ken

Ken Eaton

I've submitted a slightly updated version to remove some mlint messages. The help description was also not formatting properly (no indents appeared, so you have to look at the function header for correct examples).

Updates

1.2

Fixed description and acknowledgements

1.1

A couple minor changes in the file, an updated description, and a couple acknowledgments added.

MATLAB Release
MATLAB 7.1.0 (R14SP3)

Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.

» Watch video