Rank: 4323 based on 20 downloads (last 30 days) and 2 files submitted

per isakson


Personal Profile:


Watch this Author's files


Files Posted by per isakson View all
Updated   File Tags Downloads
(last 30 days)
Comments Rating
03 Oct 2010 Screenshot tracer4m tracer4m traces calls to methods and functions. Author: per isakson trace calls, tracing, logging, unit test, demo, oop 10 2
  • 5.0
5.0 | 1 rating
19 Apr 2010 Screenshot InputPreprocessor Parses, adds defaults and validates the input of functions and methods Author: per isakson input data, parse 10 0
Comments and Ratings by per isakson View all
Updated File Comments Rating
02 Sep 2014 youemel A tool to generate GraphViz UML diagrams from Matlab code, with hyperlinks back to the code. Author: Nicholas

The line 114 of UmlClass.m should read


Besides that, my first shot produced a nice class diagram.

EDIT: My mistake. With R213a one has to edit the line.

20 Mar 2014 Code Metrics Generate code metrics for the specified directory Author: Santosh Kasula

CODEMETRICS reports one clash for each file in my test. Is that behavior intended? Anyhow, I replaced

% Locate.
clashname = which( fname );


% Locate.
if isscalar( which( fname, '-all' ) )
clashname = '';
clashname = which( fname );

in the subfunction, getClash. Now it reports no clashes in the same test.

25 Jan 2014 UIGETDATE UIGETDATE displays a dialog box in form of a calendar. Author: Elmar Tarajan

uigetdate has served well for many years, but now the new version of datenum (R2013b?) issues an error.


% tmp = {'Januar' 'Februar' 'March' 'April' 'May' 'Juni' 'Juli' ...
% 'August' 'September' 'October' 'November' 'December'};
tmp = {'Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'};


out = datenum([num2str( ...
get(findobj(gcf,'Tag','cday'),'UserData')) '-' ...
get(findobj(gcf,'Tag','months'),'String') '-' ...
get(findobj(gcf,'Tag','year' ),'String') ' ' ...
get(findobj(gcf,'Tag','time' ),'String') ':00'] ...
, 'dd-mmm-yyyy HH:MM:SS' );

I added the format specifier.

Now it seems to work again.

29 Jul 2013 Save and load Matlab "projects" in editor Saves and loads Matlab "projects" in editor (currently-open files, working directory, search path). Author: Kevin Bartlett

I often have many files open at the same time and it is very convenient to be able to switch between sets of files. matproj works well.

However, some days ago matproj caused me some trouble. This is what happened.

Background: I've used R2012a until recently. Matlab was first updated to R2012b, which I didn't use because of ribbon-phobia. Now, Matlab is updated to R2013a, which I use because some bugs are fixed.

Incident: Without too much thinking, I loaded an old "project" with matproj and I was instantly in trouble. The path to the R2013a installation was replaced by the path to R2012a. For me that was no big problem once I realized what had happened.

Proposal: Modify matproj so that it does not affect the path to Matlab proper.

26 Jul 2013 mlunit_2008a A MATLAB unit test framework supporting new classdef files (r2008a) Author: Christopher

Now I've run the sample tests with R2013a. It works nicely. However, there were two minor problems.

Firstly, I cannot avoid the warning: "The selected tests appear to not be in your current path[...]" and accepts adding it. The reason seems to be the case of a drive letter. The variable, pname, has a capital "H" and path and pwd returns lower case "h". Here are some excerpts from my tracking the issue.

classdef GuiTestRunner < TestRunner
function addTestsCB(self, src, event)
[fnames, pname] = uigetfile('*.m', 'Add ...
if ~strcmp(pname, pwd)
k = strfind(path, pname);
if isempty(k)

K>> str = path;
K>> strfind( str, pname)
ans =
K>> str(1:60)
ans =
K>> pwd
ans =
K>> pname
pname =

Secondly, I had a run-time error, "Too many input ...", which I "magically" fixed by adding a tilde, "~", to the signature of the constructor, TestResult. Weird!

Too many input arguments.
Error in TestSuiteResult (line 12)
self = self@TestResult(varargin{:});
Error in TestSuite/getNewTestResult (line 24)
tr = TestSuiteResult(self, parent);

function self = TestResult(obj, par, ~ )

Comments and Ratings on per isakson's Files View all
Updated File Comment by Comments Rating
01 Nov 2012 tracer4m tracer4m traces calls to methods and functions. Author: per isakson per isakson

Jesse, thanks for the comment. The purpose of pause(0.001) *was* to ensure that each successive call should have a unique timestamp. That was useful during debugging.

23 Oct 2012 tracer4m tracer4m traces calls to methods and functions. Author: per isakson Jesse Hopkins

Wow thank you for this incredibly useful utility. I had one hickup which was user error. I used the output of "dir" to pass into the setup function, which broke the setup. Worked fine once I stripped off the ".m" extension from the filenames returned by dir.

Afterwords, everything "just worked", and I was able to get incredibly useful traces. I had attempted something simliar in the past, but never could get anything working without instrumenting the code. Well done using mlint & conditional breakpoint side effects to get function traces without needing to modify code.

Question: Why call pause(0.001) in TraceHistory.add?

Contact us