x=load('myfile.dat');   % load content of myfile.dat in an array x
dir;              % display all files in the current directory (like ls)
f=dir;            % creates a structured array of "files" objects 
f=dir('*.dat');   % creates an structured array of data files objects 
f(1).name;        % return the name of the first file
for i=1:length(f); % for each file x=load(f(i).name); % load each file i myfunction(x); % do something with x end
save myfile var1 var2 ... -ASCIIor
save('myfile', 'var1', 'var2',...,'-ASCII')
or (if you want to index your file)
index=i;
myfile = sprintf('file%d.dat',index);
save(myfile, 'var1', 'var2',...,'-ASCII')
or (if you want to concatenate strings)
fileext='dat';
myfile = sprintf('myfile.%s',fileext);
save(myfile, 'var1', 'var2',...,'-ASCII')
fID=fopen('mytextfile.txt','w'); % file ID ('w' means "open or create new file for Writing")
myformat='%s\t%g\n';             % my format
D1='The value of pi is:';        % string data
D2=3.14159;                      % numeric data
fprintf(fID,myformat,D1,D2);     % write in file
fclose(fID);                     % close file  				
type mytextfile.txt;             % display the content of the file
nfig=1; % number of the figure set(nfig,'PaperPositionMode','auto'); % to keep aspect ratio when saving in file
saveas(gca,'myfigure.jpg','jpg'); % save current figure as jpg fileor
saveas(gca,'myfigure.eps','eps'); % save current figure as eps file
rand('state',sum(100*clock));   
To generate...
z=rand()a 5x5 matrix of random values from a uniform distribution between 0 and 1:
z=rand(5)a vector of 5 random values from a uniform distribution between 0 and 1:
z=rand(5,1)a vector of 5 random values from a uniform distribution between 0 and 10:
z=10.*rand(5,1)a vector of 5 random integer values from a uniform distribution between 0 and 10:
z=ceil(10.*rand(5,1))a vector of 5 random values from a normal distribution of mean 0 and standard devation 1:
z=randn(5,1)a vector of N random values from a normal distribution of mean m and standard devation s:
m=5; % mean s=2; % standard deviation N=100; % number of numbers to generate z=m+s.*randn(1,N);a random number from a binomial distribution with parameters specified by the number of trials, N, and probability of success for each trial, p:
N=100; % number of trials p=0.7; % probability of success z=binornd(N,p);a matrix of n x m random values from a binomial distribution (with N trials and probability p of success):
N=10; % number of trials p=0.5; % probability of success n=5; m=5; z=binornd(N,p,[n,m])a matrix n x m of random values with proba p to get a non-null value (i.e. a "sparse" random matrix):
p=0.5; % probability to have a non-nul value n=5; m=5; z=rand(n,m).*binornd(1,p,[n,m])a vector of N random values from a log-normal distribution of mean m and standard devation s:
m=5; % mean s=2; % standard deviation N=100; % number of numbers to generate mn=log(m^2/sqrt(s^2+m^2)); sn=sqrt(log(s^2/m^2+1)); z=exp(mn+sn.*randn(1,N));a vector of N=100 numbers from a gamma distribution with mean m=5 and standard deviation s=5:
m=5; % mean s=5; % st dev N=100; % number of random numbers to generate a=m/s ; % shape parameter b=m^2/s ; % scale parameter x=gamrnd(a,b,[1 N]);a random permutation of the integers 1:n
n=8; z=randperm(n)random permutation of the elements of a vector
v=[2 4 6 8 10]; w=v(randperm(length(v)))
eq1=sprintf('a-(b+1)*x+x^2*y');
eq2=sprintf('b*x-x^2*y');
sol=solve(eq1,eq2,'x','y');
sol.x
sol.y
To solve equations numerically
a=2;
b=5.2;
eq1=sprintf('%d-(%d+1)*x+x^2*y',a,b);
eq2=sprintf('%d*x-x^2*y',b);
sol=solve(eq1,eq2,'x','y');
sol.x
sol.y
Selecting real solutions
eq1=sprintf('2/(1+Y^4)-X=0');
eq2=sprintf('2/(1+X^4)-Y=0');
sol=solve(eq1,eq2,'X','Y');
sol.X
sol.Y
x=eval(sol.X)
y=eval(sol.Y)
k=find(imag(x)==0);
sol=[x(k) y(k)]
%%% Data
x=[0 1.6 2.6 4.1 5.1 6.5 7.4 8.9 9.6];
y=[-10.3 0.2 13.5 23 41.9 45.7 60.1 78.0 88.2];
%%% Correlation coefficient (if R close to 1, linear fit OK)
R=corrcoef(x,y);
R(1,2)
%%% Fitting
n=1;      % degree of the polynom (n=1 <=> linear fit)
p=polyfit(x,y,n)
%%% Write the function
fprintf('Best fit: y = %g x + %g nn',p(1),p(2))
%%% Figure
xfit=x;
yfit=p(1).*x +p(2);
plot(x,y,'bo',xfit,yfit,'r-');  
xlabel('x');
ylabel('y');
legend('data','fit',2)
Exponential fit
%%% Data
t = [1:8] ; 
x = [629 537 460 375 334 286 249 227] ;
%%% Define your exponential function
fh = @(t,p) p(1) + p(2)*exp(-t./p(3))
%%% Error function (to be minimized)
errfh = @(p,x,y) sum((y(:)-fh(x(:),p)).^2)
%%% Initial guess of the exponential parameters
p0 = [mean(x) (max(x)-min(x)) (max(t) - min(t))/2];
%%% Search for solution
P = fminsearch(errfh,p0,[],t,x) 
%%% Write the function
fprintf('Best fit: x = %g + %g  exp(-t/%g) nn',P(1),P(2),P(3))
%%% Plot the result
tt=[1:0.1:8];
plot(t,x,'bo',tt,fh(tt,P),'r-')
xlabel('t')
ylabel('x')
legend('data','fit')
| Time series plot | |
|  |   T=[0:5]    % this generates a vecteur T with number 0 to 5
  D=rand(6)  % this generates a 6x6 matrix with random number between 0 and 1
  figure(1)
  set(figure(1),'Position', [400 400 500 300]);  % size of the figure
  clf;   % to clean the figure
  plot(T,D(:,2),'b',T,D(:,3),'r.',T,D(:,4),'g--');
  xlabel('Time (h)','fontsize',18);
  ylabel('Variable (nM)','fontsize',18);
  xlim([0 5]);
  ylim([0 1]);
  title('Here is a useless plot')
  legend('x','y','z');
  set(gca,'xtick',[0:0.5:6],'fontsize',14);
  set(findobj(gca,'Type','line','color','blue'),'LineWidth',2);
 | 
| Symbols plot | |
|  | figure(3) clf; T=[1:5]; X=rand(5,1); Y=rand(5,1); Z=rand(5,1); plot(X,X,'rs','LineWidth',1,'MarkerEdgeColor','k','MarkerFaceColor','b','MarkerSize',10) hold on; plot(X,Y,'o','LineWidth',1,'MarkerEdgeColor','r','MarkerFaceColor','r','MarkerSize',15) hold on; plot(X,Z,'^','LineWidth',2,'MarkerEdgeColor','k','MarkerFaceColor','g','MarkerSize',15) Y=rand(5,1) grid on; | 
| Scatter plot | |
|  |   N=50;    % number of points to generate
  X=rand(1,N);   % x-position
  Y=rand(1,N);   % y-position
  Z=rand(1,N);   % value (color) of the points
  %s=50;            % size of the points (same for all points)
  %s=100*rand(1,N); % size of the points (random)
  s=100*Z;          % size of the points (same vector as color)
  figure(1)
  clf;
  scatter(X,Y,s,Z,'filled')
  annotation('arrow',[0.2 0.5],[0.2 0.5])   % draw arrow
  box on;
 | 
| Error bar | |
|  |     figure(1)
    clf;
    x=[0:0.5:10];
    y=sin(x);
    e=rand(1,length(x))/5
    errorbar(x,y,e)
    hold on;
    plot([0 10],[0 0],'k--')
    text(8,-0.15,'base line','fontsize',14,'HorizontalAlignment','center');
    text(1,1.25,'maximum','fontsize',14,'HorizontalAlignment','left');
    text(6,-1.25,'minimum','fontsize',14,'HorizontalAlignment','right');
    xlim([-0.2 10.2]);
    ylim([-1.5 1.5]);
    box on;
 | 
| Double-y plot | |
|  |     figure(1);
    clf;
    x1=[0:0.5:10];
    y1=x1.^2;
    x2=[0.2:0.2:20];
    y2=1./x2;
    [AX,H1,H2]=plotyy(x1,y1,x2,y2);
    box off;
    set(get(AX(1),'Ylabel'),'String','Square (x^2)','fontsize',18)
    set(get(AX(2),'Ylabel'),'String','Inverse (1/x)','fontsize',18)
    set(H1,'LineWidth',2)
    set(H2,'LineWidth',2,'LineStyle','--')
    xlabel('x','fontsize',18);
    set(AX(1),'YLim',[0 100],'YTick',[0:10:100],'fontsize',15)
    set(AX(2),'YLim',[0 1],'YTick',[0:0.2:1],'fontsize',15)
    set(AX(1),'xlim',[0 10]);
    set(AX(2),'xlim',[0 10]);
 | 
| Bar plot | |
|  |   figure(4)
  X=[1:10];
  Y=rand(10,1);
  bar(X,Y,'r');
  xlabel('X','fontsize',18);
  ylabel('Y','fontsize',18);
 | 
| Bar plot (multicolor) | |
|  |   D=[12 8 16 4];  % data
  figure(1)
  b=bar(1:4,D);   %  bar plot
  %%% trick to personnalize the color of each bar:
  ch=get(b,'children');
  cd=repmat(1:numel(D),5,1);
  cd=[cd(:);nan];
  set(ch,'facevertexcdata',cd);
  colormap([[0,0,1];[1,0,0];[0,0.5,0.5];[0.5,0,0.5]]);
  set(gca,'YGrid','on')  % horizontal grid
  ylim([0 max(D)+2]);
  set(gca,'XTickLabel',{'data 1','data 2','data 2','data 4'},'fontsize',14)
  ylabel('Occurence')
 | 
| Bar plot with error bars | |
|  | figure(1)
clf;
D=[15 85; 54 46; 28 72];       % data
S=[1.5 8.5; 4.6 5.4; 2.8 7.2]; % st dev (10%)
h=bar(D);
set(h,'BarWidth',1);
hold on;
ngroups = size(D,1);
nbars = size(D,2);
groupwidth = min(0.8, nbars/(nbars+1.5));
colormap([0 0 1; 1 0 0]);   % blue / red
for i = 1:nbars
x = (1:ngroups) - groupwidth/2 + (2*i-1) * groupwidth / (2*nbars);
errorbar(x,D(:,i),S(:,i),'k.','linewidth',2);
end
set(gca,'XTickLabel',{'Test 1','Test 2','Test 3'},'fontsize',14)
ylabel('Percentage','fontsize',14)
 | 
| Histogram | |
|  |   D=randn(50,1)  % generates a vector with 50 numbers normally distributed
  figure(2)
  bin=[-4:0.2:4];
  hist(D,bin);
  xlabel('Value','fontsize',18);
  ylabel('Occurrence','fontsize',18);
  xlim([-4 4]);
  ylim([0 8]);
  set(findobj(gca,'Type','patch'),'FaceColor','b','EdgeColor','k')
  text(-3,6,'this is a blue histogram')
 | 
| Histogram with several populations | |
|  |   figure(2)
  D1=randn(1000,1);  % generates a vector with 1000 random numbers normally distributed
  D2=2*randn(1000,1)+3; % generates a vector with 1000 random numbers normally distributed
  x=[-5:0.5:10];
  y1=hist(D1,x);
  y2=hist(D2,x);
  D=[y1; y2];
  bar(x,D',1.4);
  xlabel('Value','fontsize',18);
  ylabel('Occurrence','fontsize',18);
 | 
| Box plot | |
|  | n=100;  % number of data points / sample
D(1:n,1)=10+2*randn(1,n);  % sample 1
D(1:n,2)=30+5*randn(1,n); % sample 2
D(1:n,3)=10+2*randn(1,n);  % sample 3
D(1:n,4)=5+10*randn(1,n); % sample 4
figure(1)
clf
h=boxplot(D,'plotstyle','traditional','whisker',1.5);
%%% Some alternatives:
% 'plotstyle'= 'compact' => useful of many boxes
% 'whisker'= 1.5 (default) => increased not to display outliers 
% 'colors'='k' => plot in black
set(findobj(gcf,'LineStyle','--'),'LineStyle','-') % solid lines
for b=1:4 % loop on boxes
for i=1:size(h,1) % loop on the "elements" of a box
set(h(i,b),'linewidth',3);  % increase linewidth
end
end
mylabels={'Sample 1','Sample 2','Sample 3','Sample 4'};
mylabpos=[1:4];
set(gca,'XTickLabel',mylabels,'XTick',mylabpos,'fontsize',14);
 | 
| Fill polygons | |
|  |   x = [1 2 4 7 9 4];
  y = [4 9 9 7 3 1];
  col=[0.2 0.6 0.2]; % colour (RGB)
  fill(x,y,col); 
  xlim([0 10]);
  ylim([0 10]);
  set(gca,'XTickLabel',{''})  % to remove x tick labels
  set(gca,'YTickLabel',{''})  % to remove y tick labels
  set(gca,'XTick',[])         % to remove x ticks
  set(gca,'YTick',[])         % to remove y ticks
  %axis off;                  % to remove the box
 | 
| Color map | |
|  |   X=rand(10);
  imagesc(X);
  colormap(jet);    % instead of 'jet' try 'gray', 'bone', 'spring',...
                    % >>help colormap for more color options.
  set(gca,'XTickLabel',{''})  % to remove x tick labels
  set(gca,'YTickLabel',{''})  % to remove y tick labels
  set(gca,'XTick',[])         % to remove x ticks
  set(gca,'YTick',[])         % to remove y ticks
 | 
| Pie chart | |
|  |   x=[30 10 60 50];
  explode = [0 0 0 0];
  %explode = [0 2 0 0];
  labels = {'Label 1', 'Label 2', 'Label 3', 'Label 4'};
  %labels = [];     % to indicate percents instead of labels
  h=pie(x,explode,labels);   % try pie3 for 3D pie...
                             % NB: if no labels, the percentage are indicated. 
			     
  %set(h(2:2:8),'fontsize',16); % sise of the labels
  set(h(2),'fontsize',16,'position',[-0.4 0.5],'color','w');   % label 1
  set(h(4),'fontsize',16,'position',[-0.7 0.07],'color','k');  % label 2
  set(h(6),'fontsize',16,'position',[-0.1 -0.5],'color','k');  % label 3
  set(h(8),'fontsize',16,'position',[0.4 0.35],'color','w');   % label 4
  colormap jet
  %set(h(1),'facecolor','m');   % change color of piece 1 into magenta
  title('Example of pie chart','fontsize',18)
  %set(gca,'position',[0.13 0.11 0.775 0.815])  % to change plot position 
  legend('lab1','lab2','lab3','lab4','location',[0.75 0.7 0.2 0.2])
 | 
| Plot 3D | |
|  | figure(8) clf; x=[0:0.01:40]; plot3(x.*sin(x),x.*cos(x),x,'b') box on; | 
| Surface | |
|  |   x=[1:0.2:10];
  y=[1:0.2:10];
  for i=1:length(x)
  for j=1:length(y)
    z(i,j)=1./x(i).*sin(y(j));
  end
  end
  figure(2);
  clf;
  surf(x,y,z);  
 | 
| Contour | |
|  | z=peaks; % demo data figure(2) clf; n=8; % number of contour plot (not mandatory) contour(z,n,'linewidth',2); %%% To write level on the contour lines: % [C,h]=contour(z,n,'linewidth',2) % set(h,'ShowText','on','TextStep',get(h,'LevelStep')*2) %%% Alternative representations: % contourf(z,n) % to fill the regions between the contours % contour3(z,n) % to draw the contours in 3D | 
| Surface + contour | |
|  |   z=peaks;  % demo data
  figure(4)
  clf;
  h=surfc(z);
  clev=-8;   % z-level of the contour lines
  for n=2:numel(h)
     z=get(h(n),'zdata');
     set(h(n),'zdata',ones(size(z))*clev); % Contours are draw at z=clev
  end
 | 
| Density | |
|  | z=peaks; % demo data figure(3) clf; niter=1; method='bilinear'; y=interp2(z,niter,method); imagesc(y); | 
| Geometrical shapes | |
|  |   %%% background colors
  whitebg([1.0 1.0 0.6])         % background color (in+out plot)
  set(gcf,'Color',[0,0.4,0.4])    % background color (out plot only)
  %%% circle
  circle = rsmak('circle');
  fnplt(circle)
  set(findobj(gca,'Color','blue'),'Color','r','LineWidth',2)
  xlim([-1.5 5])
  ylim([-1.5 5])
  axis square
  %%% ellipse
  hold on;
  S=[2,1];                                    % stretch
  T=[2;3];                                    % translation
  a=35*2*pi/360;                              % rotation angle
  R=[cos(a) sin(a);sin(a) -cos(a)];           % rotation matrix
  ellipse = fncmb(circle,[S(1) 0;0 S(2)]);    % stretch
  rtellipse = fncmb(fncmb(ellipse, R), T );   % rotate
  fnplt(rtellipse)
  set(findobj(gca,'Color','blue'),'Color','b','LineWidth',4)
  %%% rectangle
  
  hold on;
  c=[0.0 0.6 0.4];
  rectangle('Position',[2.5,0.5,2,3],'LineWidth',2,'facecolor',c,'edgecolor',c)
  %%% rounded rectangle
  hold on;
  rectangle('Position',[0.5,-0.2,3.2,1.3],'Curvature',[0.8,0.4],'LineWidth',2,'facecolor','b')
  %%% triangle
  hold on;
  h=patch([0 1 2], [3 4.5 3],'g');
  set(h,'facecolor',[0.6 0.0 0.4],'facealpha',0.7)
 | 
| Voronoi plot | |
|  |   N=30;  % number of cells
  x=rand(1,N);
  y=rand(1,N);
  D=[x;y]';
  [v,c]=voronoin(D);  % get edges
  for p=1:N
  r=rand()/2+0.5;    % color: random light grey 
  col=[r r r];
  patch(v(c{p},1),v(c{p},2),col);  % color
  hold on;
  plot(x(p),y(p),'k.')        % dot at "center"
  end
  voronoi(x,y,'k')   % plot edges
  axis equal
  box on
  xlim([0 1])
  ylim([0 1])
 | 
| Sphere | |
|  |   r=20;               % resolution
  a=2;                % size of the sphere
  xc=1;yc=2;zc=3;     % coordinates of the center
  alpha=0.5;          % transparency 
  [x,y,z]=sphere(r);
  figure(1)
  clf;
  surf(xc+x*a,yc+y*a,zc+z*a,'facecolor','blue','edgecolor','k','facealpha',alpha)
  %colormap('jet')   % colormap can be used if facecolor not used 
  xlabel('x');
  ylabel('y');
  zlabel('z');
 | 
| Cube | |
|  | xc=1; yc=1; zc=1; % coordinated of the center L=1; % cube size (length of an edge) alpha=0.8; % transparency (max=1=opaque) X = [0 0 0 0 0 1; 1 0 1 1 1 1; 1 0 1 1 1 1; 0 0 0 0 0 1]; Y = [0 0 0 0 1 0; 0 1 0 0 1 1; 0 1 1 1 1 1; 0 0 1 1 1 0]; Z = [0 0 1 0 0 0; 0 0 1 0 0 0; 1 1 1 0 1 1; 1 1 1 0 1 1]; % C='blue'; % unicolor C= [0.1 0.5 0.9 0.9 0.1 0.5]; % color/face % C = [0.1 0.8 1.1 1.1 0.1 0.8 ; 0.2 0.9 1.2 1.2 0.2 0.8 ; % 0.3 0.9 1.3 1.3 0.3 0.9 ; 0.4 0.9 1.4 1.4 0.4 0.9 ]; % color scale/face X = L*(X-0.5) + xc; Y = L*(Y-0.5) + yc; Z = L*(Z-0.5) + zc; fill3(X,Y,Z,C,'FaceAlpha',alpha); % draw cube axis equal; AZ=-20; % azimuth EL=25; % elevation view(AZ,EL); % orientation of the axes | 
| Multi-plot | |
|  | figure(1) clf; x=[0:10]; subplot(2,3,1) plot(x,x) subplot(2,3,2) plot(x,(x-5).^2) subplot(2,3,3) plot(x,1./(x+1)) subplot(2,3,4) plot(x,exp(x)) subplot(2,3,5) plot(x,sin(x)) subplot(2,3,6) plot(x,factorial(x)) | 
| Multi-plot | |
|  | figure(1) clf; x=[-1:0.02:1]; subplot(2,2,[1 3]) plot(x,x.^2,'b.') subplot(2,2,2) plot(x,1./x,'r.') subplot(2,2,4) plot(x,cos(10.*x),'g.') | 
| Multi-plot | |
|  |   figure(1)
  clf;
  x=[0:0.01:20];
  subplot('Position',[0.1 0.75 0.65 0.2])
  plot(x,sin(x),'b')
  subplot('Position',[0.2 0.45 0.65 0.2])
  plot(x,cos(x),'b')
  subplot('Position',[0.3 0.15 0.65 0.2])
  plot(x,sin(x).*cos(x),'b')
 | 
| Inset | |
|  |   figure(1)
  clf;
  x=[0:0.1:20]
  y=sin(x)
  subplot(1,1,1) ; % main plot
  plot(x,y,'b')
  xlabel('x','fontsize',18)
  ylabel('sin(x)','fontsize',18)
  axes('position',[0.5 0.6 0.3 0.2]) ; % inset
  plot(x,abs(y),'r')
  xlabel('x','fontsize',15)
  ylabel('abs(sin(x))','fontsize',15)
 | 
color=[r g b]; % r=red, g=green, b=blueSome colors can also be referred to by their "name". Examples:
color='b'; % blue color='k'; % black color='m'; % magentaHere is the code (r,g,b) and the name for different colors.
 
 
| Simulation | ||
| Simulating a discrete iterative system (logistic equation) | 25/1/2008 | logistic.m | 
| Simulating a 2-ODE system (Bruxellator) | 29/1/2008 | brusselator.m | 
| Simulating a 2-ODE system + plot the direction field (Toggle switch) | 31/1/2009 | togglequiver.m | 
| Simulating a 2-ODE phase oscillator (limit-cycle phase oscillator) | 14/7/2008 | phaseoscillator.m | 
| Simulating a 3-ODE system (FRQ model for circadian clock) | 25/1/2008 | frq.m | 
| Simulating a 3-ODE system + sensitivity analysis (FRQ model for circadian clock) | 19/12/2012 | frqsensitivity.m | 
| Simulating a forced 3-ODE system (FRQ model for circadian clock entrained by a LD cycle) | 29/1/2008 | frqforced.m | 
| Simulating a perturbed 3-ODE system + phase response curve (FRQ model for circadian clock perturbed by a light pulse) | 22/7/2008 | frqprc.m | 
| Simulating a 3-ODE system with a conditional resetting of a variable (Ruoff model) | 13/8/2009 | ruoff.m | 
| Simulating a chaotic 3-ODE system (Rossler model) | 8/7/2008 | rossler.m | 
| Simulating a 2-variable DDE system (Delay differential models for circadian clock: Scheper model with 1 delay + Sriram model with 3 delays) | 16/7/2008 | delaymodel1.m delaymodel2.m | 
| Simulating a system of coupled oscillators (N x 4-ODE system) (Coupled Goodwin oscillators via (1) a mean field or (2) a coupling matrix) | 29/5/2008 | goodwinsynchro1.m goodwinsynchro2.m | 
| Simulating a system with diffusion (1D and 2D simple Fick model) | 24/5/2008 29/5/2008 | fick.m fick2D.m | 
| Simulating a reaction-diffusion system (Reaction-diffusion Brusselator - 2D) | 29/5/2008 | bruxRD2D.m | 
| Simulating a reaction-diffusion system (Propagating front) | 8/9/2012 | RDfront.m | 
| Simulating a stochastic system with the Gillespie algorithm (Stochastic FRQ model) | 13/7/2007 | frqstocha.m | 
| Simulating a stochastic system with the Langevin algorithm (Stochastic Brusselator model) | 26/1/2007 | bruxLange.m | 
| Time series analysis (deterministic time series) | ||
| Maxima (all maxima of a time series) | 28/10/2014 | maxima.m | 
| Minima (all minima of a time series) | 28/10/2014 | minima.m | 
| Period (for deterministic oscillations) | 2/1/2011 | period.m | 
| Amplitude (for deterministic oscillations) | 2/1/2011 | amplitude.m | 
| Phase (for deterministic oscillations) | 2/1/2011 | phase.m | 
| Damping (for deterministic oscillations) | 2/1/2011 | damping.m | 
| Poincare section | 8/3/2011 | poincare.m | 
| Order parameter (for synchronized oscillations) | 19/10/2010 | orderparam.m | 
| Time series analysis (stochastic time series) | ||
| Auto-correlation function (for stochastic oscillations) | 30/1/2008 | autocorrelation.m | 
| Period distribution - naive approach (for stochastic oscillations) | 30/1/2008 | distriper.m | 
| Period distribution using Hilbert transform (for stochastic oscillations) | 12/12/2009 | hilbertperiod.m | 
| Fourier transform (for stochastic oscillations) | 9/7/2008 | myfft.m | 
| Data analysis and statistics | ||
| Coefficient of determination (R-squared) | 14/4/2014 | rsq.m | 
| Bray-Curtis distance | 3/8/2013 | braycurtis.m | 
| Hurst exponent | 15/4/2014 | hurst.m | 
| Data visualisation | ||
| Actogram (ex: actogram.png) | 21/10/2010 | actogram.m | 
| Raster plot (ex: raster.png) | 29/12/2010 | raster.m | 
| Graph (as in Graph theory) (ex: graph.png, graph2.png) | 4/8/2013 | graph.m graph2.m | 
| Plot matrix (with color scale) (ex: plotmatrix.png) | 30/7/2014 | plotmatrix.m | 
| Time series profile (ex: tsprofile.png) | 8/5/2014 | tsprofile.m | 
| Plot color points (from a data matrix) (ex: plotcolorpoints.png) | 21/10/2015 | plotcolorpoints.m | 
| Phase circle (ex: phasecircle.png) | 18/11/2015 | phasecircle.m | 
| Simplex (ternary) plot (ex: simplex.png) | 10/12/2015 | simplex.m | 
| Cellular automaton | ||
| Wolfram's automata (1D) (see some results here) | 27/7/2008 | wolfram.m | 
| Game of Life (2D) (see some results here) | 27/7/2008 | gameoflife.m | 
| Cell cycle automaton (see scheme of the model here and results here) | 6/11/2008 16/11/2008 | cdcautomaton.m cdcautoanim.m | 
| Hubbell model (population dynamics) +spatial extension | 24/7/2012 | hubbell.m hubbell_spatial.m | 
| Other automata (Langton's ant, Diffusion, Aggregation, Sand pile, etc) | 28/12/2010 | See here | 
| Random walks | ||
| Random walk | 30/12/2008 | randomwalk.m | 
| Brownian movement | 30/12/2008 | brownian.m | 
| Fibonacci and Golden ratio | ||
| Fibonacci numbers | 31/12/2008 | fibonacci.m | 
| Golden spiral | 31/12/2008 | goldspiral.m | 
| Golden plant | 31/12/2008 | goldplant.m | 
| Golden tree | 31/12/2008 | goldtree.m | 
| Tournesol | 31/12/2008 | tournesol.m | 
| Chaos and Fractals | ||
| Fractals: Cantor, Koch, Sierpinsky, Menger, Julia, Mandelbrot,... | 25/1/2008 | See here | 
| Henon map | 21/11/2012 | henon.m | 
| Baker's transform | 23/12/2012 | baker.m | 
| Miscellaneous | ||
| Arrow (add arrow(s) on a plot) | 30/4/2015 | arrows.m | 
| Circle | 2/8/2013 | circle.m | 
| Moebius strip | 26/12/2011 | moebius.m | 
| Perimeter of polygones | 3/11/2013 | polyperim.m | 
| Intersection | 12/12/2013 | intersection.m | 
| Voronoi neighbours (get neighbours in a Voronoi diagram) | 2/11/2013 | voroneighbours.m | 
| Scale-free network | 25/4/2014 | SFnet.m | 
| Image manipulation | ||
| Image deformations (applied here to clownfish1.jpg) | 21/7/2008 | imtransfo.m | 
| Image colors changes (applied here to clownfish1.jpg) | 21/7/2008 | imcolor.m | 
| Image superposition (applied here to clownfish1.jpg and clownfish2.jpg) | 21/7/2008 | imsuper.m | 
| Photomaton (applied here to monalisa_256.jpg => monalisa_out.jpg) | 24/7/2010 | photomaton.m | 
| Transformation du Boulanger (applied here to monalisa_256.jpg => monalisaboul.png) | 9/10/2011 | boulanger.m | 
| Photocube (applied here to photo1.jpg+photo2.jpg+photo3.jpg => photocube.jpg) | 17/8/2012 | photocube.m | 
| Animation | ||
| Rotating cube (see animation here) | 3/1/2009 | rotatingcube.m | 
| Lighted sphere (see animation here) | 15/2/2009 | lightsphere.m | 
| Transparent icosahedron (see animation here) | 15/2/2009 | icosahedron.m |