File Comment by Comment
17 Mar 2013 Violin Plots for plotting multiple distributions (distributionPlot.m) Function for plotting multiple histograms side-by-side in 2D - better than boxplot. Jonas

@Warwick: this looks like a bug - globalNorm=2 should do the trick, but at the moment, it seems like it would require equally spaced bins. I'll look into it.

24 Feb 2013 Plot average line plotAverage plots an average line into the data. Jonas

Hi Dafni,

Here's an example:

x = 1:0.1:10;
cmap = jet(10);
% plot some lines
figure,hold on,
for i=1:10,
plot(x,sin(x)+randn(size(x)),...
'color',cmap(i,:));
end
% add average, set robust-option to 0
plotAverage(gca,[],'userobustmean',0)

07 Jan 2013 Arrow3 Version 5 Draws lines with directional arrowheads. Jonas

I've downloaded arrow3 sometime in 2002 for the first time; great job, guys!

In order to avoid possible conflicts with other code writing to the 'UserData' property, I suggest replacing these calls by "setappdata(ax,'arrow3',value)"

23 Oct 2012 plot spread points (beeswarm plot) plotSpread plots distributions of data points, adding jitter to the points to avoid overlap. Jonas

@Yuri: Thank you for the hint. I'll look into fixing this.

11 Oct 2012 plot spread points (beeswarm plot) plotSpread plots distributions of data points, adding jitter to the points to avoid overlap. Jonas

To change marker size programmatically, you can use the function "findall" to get the handles for the spots. Say you want to set the marker size to 16 of the black markers, and the figure number is 3, you could write
set(findall(3,'type','line','color','k'),'markerSize',16)

14 Jun 2012 Violin Plots for plotting multiple distributions (distributionPlot.m) Function for plotting multiple histograms side-by-side in 2D - better than boxplot. Jonas

@all: thanks again for the suggestions, most of which are implemented now. Please note that plotSpread is now a submission on its own that needs to be downloaded separately.

12 Jun 2012 plot spread points (beeswarm plot) plotSpread plots distributions of data points, adding jitter to the points to avoid overlap. Jonas

@peter: "ismatrix" only appeared in 2010b. I've tried and failed to install 2009b today, so I wasn't able to make sure that I haven't included another incompatible function call. Have you been able to test the new version?

11 Jun 2012 plot spread points (beeswarm plot) plotSpread plots distributions of data points, adding jitter to the points to avoid overlap. Jonas

ismatrix is a built-in function from a release later than R2009b - sorry for the mis-labeling of plotSpread. I am replacing ismatrx and I'll upload a fixed version soon

10 Jun 2012 Generate maximally perceptually-distinct colors Choose a set of n colors that can be readily distinguished from each other Jonas

19 Mar 2012 Violin Plots for plotting multiple distributions (distributionPlot.m) Function for plotting multiple histograms side-by-side in 2D - better than boxplot. Jonas

@Yuri Kotliarov: I suggest you call addSpread.m directly, rather than via distributionPlot.m

@all: thanks for the good suggestions. I hope I can implement them soon!

22 Feb 2012 Shortcut tools Programmatically manipulate shortcuts. Jonas

Excellent set of tools! Thank you very much.

14 Dec 2011 Violin Plots for plotting multiple distributions (distributionPlot.m) Function for plotting multiple histograms side-by-side in 2D - better than boxplot. Jonas

@Yuri: I have implemented your suggestion (though I start the histograms from the very left or right side, respectively), and fixed the previous bug.

01 Nov 2011 Violin Plots for plotting multiple distributions (distributionPlot.m) Function for plotting multiple histograms side-by-side in 2D - better than boxplot. Jonas

@Yuri Kotliarov: Currently, the only workaround is to call ksdensity outside of distributionPlot to ensure that the smoothing uses the same kernel:

x = zeros(10,1);
y = x+randn(10,1)*0.1;
[yy(:,2),yy(:,1)] = ksdensity(y,'width',0.01);
[xx(:,2),xx(:,1)] = ksdensity(x,'width',0.01);
distributionPlot({xx,yy},'showMM',false)

Unfortunately, the showMM option is bugged when you supply your own histograms at the moment, so you have to set that option to false.

19 Aug 2011 Image Morphology An interactive environment for morphologically operating on images. Jonas

Same error here as Bojan - StrelTool seems to be missing from the package, which makes the potentially awesome submission unusable.

21 Jun 2011 Violin Plots for plotting multiple distributions (distributionPlot.m) Function for plotting multiple histograms side-by-side in 2D - better than boxplot. Jonas

@Yuri: The new version of distributionPlot supports grouped data.

05 Apr 2011 Optimization Tips and Tricks Tips and tricks for use of the optimization toolbox, linear and nonlinear regression. Jonas

Should have rated this as 5 a long time ago. This is a most excellent resource, and pleas.m has helped me tremendously.

20 Jan 2011 Violin Plots for plotting multiple distributions (distributionPlot.m) Function for plotting multiple histograms side-by-side in 2D - better than boxplot. Jonas

@Yuri: No, it doesn't work with grouped data (yet). In the meantime, you can use a function like group2cell (http://www.mathworks.com/matlabcentral/fileexchange/11192-group2cell) to distribute your grouped data among cells to use with distributionPlot.

20 Jan 2011 Violin Plots for plotting multiple distributions (distributionPlot.m) Function for plotting multiple histograms side-by-side in 2D - better than boxplot. Jonas

@Brian: Thanks for the suggestions, and for sending me your sample code. I have not had time yet to update my code, though, but I will look into it!

27 Apr 2010 Fminspleas Efficient nonlinear regression fitting using a constrained, partitioned least squares overlay to fmi Jonas

This is a beautiful piece of code. In addition to doing very well what it does, it is very well documented. Thus, it is easily modified, for example to allow robust fitting.

26 Apr 2010 A dice roller for Matlab Everyone needs to roll dice or flip a coin now and then. This is the program to make it easy. Jonas

Thank you very much for your detailed investigation! I never thought that roll would work with functions other than '+' or '-', though looking at the code, it turns you that you can use any kind of function as long as it doesn't contain the signature of a roll, and that the output of a dice roll is valid input. I'm glad my function works so well, including giving me a good rating.

I have updated the help according to your suggestions (the file should be up on April 27).

03 Apr 2010 Automatic template for new functions newFunction creates an empty function with custom header Jonas

@John: The reason I like the dialog box is that it guarantees that there will be a H1-line, and that it allows me to switch between function, handle/value class without requiring additional inputs.

Also, if I have to type the input description anyway, why not do it so that I don't need to worry about tabs all the time?

Of course, as you said, everybody is different. You want to start writing your function right away without being bothered by a dialog window. I find that the dialog window helps me to stop and think before I start coding.

16 Feb 2010 export_fig Exports figures nicely to a number of vector & bitmap formats. Jonas

Very useful program!

1) When you print to .eps, you print to .eps, then convert to .pdf, then back to .eps. Why?

2) On OS X, the uigetdir file dialog does not show the title. Thus, when the user is asked to provide the path to pdftops, it is not clear at all what is going on. I suggest adding the following before line 60 of pdftops.m:
if ismac
uiwait(wh)
end

05 Nov 2009 fdep: a pedestrian function dependencies finder FDEP dissects ML files and iteratively looks for all user defined functions used during runtime Jonas

Excellent function!

In Windows, the file separators in output.froot point the wrong way, though. Is that on purpose?

23 Oct 2009 Vector to colon notation Converts a vector into a string with its MATLAB colon notation (single resolution). Jonas

Exactly what I needed for my GUI.

Note: It would be useful if there was a check for whether the input is numeric. The code works if you feed the output back as input, but it doesn't give very good results. E.g. '1:999' becomes '1:9'

20 Apr 2009 Advanced Polar Plots v2 An improved version of the MATLAB function 'polar'. Jonas

There is an error at least on OS X - the variables TraceMax and TraceMin are initialized as empty stings, which leads to strange behavior when catenating with doubles.
This leads to the error 'Centre value is same as maximum input value' being thrown erroneously.

I suggest changing lines 1326 and 1313 to
TraceMax = [];
TraceMin = [];
respectively.

26 Feb 2009 allowaxestogrow With one click, zoom axes for better visibility. Jonas

Very neat piece of code!

I use it to allow a user to select ROIs on images in subplots. To make sure that the axes aspect ratio is preserved (otherwise, the ROI looks much different on zooming), I modified line 56 the following way (maybe you should also copy DataAspectRatioMode):