Advertisement
Guest User

mat diff

a guest
Mar 27th, 2014
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 1.16 KB | None | 0 0
  1. %SIMULATION OF THE DIFFUSION PROCESS
  2. rtn=500; %num trials
  3. global rt;
  4. rt=zeros(2,rtn);
  5.  
  6. maxWalk=15000;
  7.  
  8. %PARAMETERS
  9. a=10; %positive boundary (the negative is 0)
  10. z=0;  %starting point
  11. s=1;%variance in drift rate within trial
  12. v=0.38;%mean drift rate
  13.  
  14. for xx=1:rtn
  15.     timeseries(1:maxWalk,1)=NaN;
  16.     timeseries(1)=z;
  17.    
  18.     for i=2:maxWalk
  19.         timeseries(i)=timeseries(i-1)+normrnd(v,s,1,1);
  20.         if (timeseries(i)>=a)
  21.             slope=timeseries(i)-(timeseries(i-1));
  22.             x=i-(timeseries(i)-a)/slope;
  23.             rt(1,xx)=x;
  24.             break;
  25.         end
  26.        
  27.     end
  28.     if xx==1
  29.         plot([0 150],[1 1],'b:');
  30.     end
  31.     timeseries(isnan(timeseries))=[];
  32.     time=(1:length(timeseries));
  33.     figure(1); hold on; plot(time, timeseries,'r.-'); drawnow;
  34. end
  35.  
  36.  
  37. figure();
  38. RT{1}=rt(1,find(rt(1,:)>0));
  39.  
  40. %{
  41. [~,~,~,~,~,~,~,par]= myHist(RT{1},'binW',1, 'typePlot','h','fit','invg');
  42.  par{1}{1}
  43. %}
  44. mu=a/v; sig=a.^2./s.^2;
  45. %display(['Estimated - mu:' num2str(par{1}{1}(1)) ' s:  ' num2str(par{1}{1}(2))]);
  46. display(['Real - mu:' num2str(mu) ' s:  ' num2str(sig)]);
  47.  
  48. x=0:0.1:400;
  49. hold on; plot(x,invgpdf(x,mu,sig),'r-');
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement