printf works as a replacement for Matlab's fprintf. It is particularly designed to easily print log messages of running processes. In addition to formatted output it supports hierarchical grouping of more complex command sequences, automatically printing a statuses as percentage value as well as automatically printing the run time of single processes and groups.
printf nicely works with Matlab's diary functionality.
Further you can adjust parameters to control indentation, maximum depth of hierarchical output and line with.
All features are demonstrated within the contained demo program.
I suggest to use the safer PERSISTENT storage of the control struct PRINTF instead of GLOBAL.
A help text inside the code is very important. Otherwise users, who download your function, will not know how to use the function. Please add a H1-line and a help text. See Matlab's toolbox functions for good examples.
Using persistent rather than global and added comprehensive help text. Thanks to Jan Simon for pointing me towards these issues.
Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.