// Display mode
mode(0);
// Display warning for floating point exception
ieee(1);
// Exercise 1.2
//
// This Scilab script accompanies the chapter "Distinguishing between models
// of perceptual decision making" by J. Ditterich in the book "An
// Introduction to Model-Based Cognitive Neuroscience". It demonstrates the
// distribution of decision times resulting from a sequential sampling
// mechanism that does not involve temporal integration. Please note that
// this script has been optimized for readability, not execution speed.
//
// J. Ditterich, 12/2012
clear;
xdel(winsid());
// Parameters
dist_mean = 1; // mean of normal distribution from which random samples are drawn
dist_sd = 3; // standard deviation of normal distribution from which random samples are drawn
thr = 7; // decision threshold (B)
trials = 20000; // number of trials to be simulated
// Let's go...
dt_vec = [];// vector of decision times
disp("Starting simulation...");
for i = 1:trials // simulate each trial
num_samples = 0; // initialize number of drawn samples
while 1 // loop for sequential sampling
cur_samp = grand(1,1,"nor",dist_mean,dist_sd); // draw a new random number
num_samples = num_samples + 1; // update number of random samples (reflecting decision time)
if mtlb_logic(cur_samp,">",thr) then // Did we exceed the upper threshold?
dt_vec = [dt_vec,num_samples]; // store the decision time
break; // terminate the loop for this trial
end;
if mtlb_logic(cur_samp,"<",-thr) then // Did we cross the lower threshold?
dt_vec = [dt_vec,num_samples]; // store the decision time
break; // terminate the loop for this trial
end;
end;
if pmodulo(i,1000)==0 then
disp(string(i)+" trials completed.");
end;
end;
histplot(25,dt_vec);// plot a histogram of the decision times
title("Distribution of decision times");