Difference between revisions of "Matlab"
Jump to navigation
Jump to search
Line 41: | Line 41: | ||
%INSTRUCTIONS: Make sure you have the participants data file in the same | %INSTRUCTIONS: Make sure you have the participants data file in the same | ||
%folder as this .m file. Data file should follow this naming format: | %folder as this .m file. Data file should follow this naming format: | ||
%'sXX.txt', where XX is the participant's subject number. Run file, enter | %'sXX.txt', where XX is the participant's subject number. Run file, enter | ||
%subject number and condition number. Console will show you brief summary | %subject number and condition number. Console will show you brief summary | ||
%of accuracy data. Coded data file is saved to the same folder under the | %of accuracy data. Coded data file is saved to the same folder under the | ||
%name 'tsmXX.txt' | %name 'tsmXX.txt' | ||
%clear existing variables | %clear existing variables | ||
clear all | clear all | ||
clc | clc | ||
%set subject and condition number | %set subject and condition number | ||
sub_num = input('Enter the subject number: '); | sub_num = input('Enter the subject number: '); | ||
cond_num = input('Enter the condition number: '); | cond_num = input('Enter the condition number: '); | ||
%coding participant responses | %coding participant responses | ||
filename = strcat('s',int2str(sub_num),'.txt'); | filename = strcat('s',int2str(sub_num),'.txt'); | ||
data = importdata(filename); | data = importdata(filename); | ||
%read into correct list of responses and old/new from predefined list | %read into correct list of responses and old/new from predefined list | ||
answerSheet = strcat('cond',int2str(cond_num),'.txt'); | answerSheet = strcat('cond',int2str(cond_num),'.txt'); | ||
answers = importdata(answerSheet); | answers = importdata(answerSheet); | ||
switch cond_num | switch cond_num | ||
case 1 | case 1 | ||
cantL = 1; | cantL = 1; | ||
Line 117: | Line 117: | ||
newL = 1; | newL = 1; | ||
newU = 105; | newU = 105; | ||
end | end | ||
%correct recognition? if old object 123 are correct, if new object 4 right | %correct recognition? if old object 123 are correct, if new object 4 right | ||
for i = 1:210 | for i = 1:210 | ||
stimulus = data(i,2); | stimulus = data(i,2); | ||
if stimulus >= cantL && stimulus <= cantU | if stimulus >= cantL && stimulus <= cantU | ||
Line 168: | Line 168: | ||
end | end | ||
end | end | ||
end | end | ||
%display summary to console | %display summary to console | ||
data | data | ||
sortScore = sum(data(:,5)); | sortScore = sum(data(:,5)); | ||
sortPerc = (sum(data(:,5))/210)*100; | sortPerc = (sum(data(:,5))/210)*100; | ||
disp(strcat('Sort: ',int2str(sortScore),'/210 ---- ',int2str(sortPerc),'%')) | disp(strcat('Sort: ',int2str(sortScore),'/210 ---- ',int2str(sortPerc),'%')) | ||
recScore = sum(data(:,6)); | recScore = sum(data(:,6)); | ||
recPerc = (sum(data(:,6))/210)*100; | recPerc = (sum(data(:,6))/210)*100; | ||
disp(strcat('Recognition: ',int2str(recScore),'/210 ---- ',int2str(recPerc),'%')) | disp(strcat('Recognition: ',int2str(recScore),'/210 ---- ',int2str(recPerc),'%')) | ||
%output all to text file - space delimited | %output all to text file - space delimited | ||
dataFile = strcat('tsm',int2str(sub_num),'.txt'); | dataFile = strcat('tsm',int2str(sub_num),'.txt'); | ||
dlmwrite(dataFile, data, ' '); | dlmwrite(dataFile, data, ' '); |
Revision as of 23:21, 29 June 2012
Here is the new matlab script page!
Framework
Loops
Screens
Show / hide mouse cursor
Example: using loops to control blocks and trials
Display
Positioning
Show text onscreen
Loading images into MATLAB
Making Textures
Showing images on screen
Screen Flip
Example: displaying onscreen images
Input / Output
Wait for user input
Check input value
Saving out data
Example: save data to a text file
Psychology Experiment Specific
Subject number
Assigning conditions
Flipping conditions
Condition based image loading
Condition based image display
Display fixation point
Randomizing image order/positioning
Measuring reaction time
Check for correct response
Eyelink
under construction...
Full Examples
Shape Search
Automatic coding of correct trials
%INSTRUCTIONS: Make sure you have the participants data file in the same %folder as this .m file. Data file should follow this naming format: %'sXX.txt', where XX is the participant's subject number. Run file, enter %subject number and condition number. Console will show you brief summary %of accuracy data. Coded data file is saved to the same folder under the %name 'tsmXX.txt' %clear existing variables clear all clc %set subject and condition number sub_num = input('Enter the subject number: '); cond_num = input('Enter the condition number: '); %coding participant responses filename = strcat('s',int2str(sub_num),'.txt'); data = importdata(filename); %read into correct list of responses and old/new from predefined list answerSheet = strcat('cond',int2str(cond_num),'.txt'); answers = importdata(answerSheet); switch cond_num case 1 cantL = 1; cantU = 35; notL = 36; notU = 70; mineL = 71; mineU = 105; newL = 106; newU = 210; case 2 cantL = 36; cantU = 70; notL = 71; notU = 105; mineL = 1; mineU = 35; newL = 106; newU = 210; case 3 cantL = 71; cantU = 105; notL = 1; notU = 35; mineL = 36; mineU = 70; newL = 106; newU = 210; case 4 cantL = 106; cantU = 140; notL = 141; notU = 175; mineL = 176; mineU = 210; newL = 1; newU = 105; case 5 cantL = 141; cantU = 175; notL = 176; notU = 210; mineL = 106; mineU = 140; newL = 1; newU = 105; case 6 cantL = 176; cantU = 210; notL = 106; notU = 140; mineL = 141; mineU = 175; newL = 1; newU = 105; end %correct recognition? if old object 123 are correct, if new object 4 right for i = 1:210 stimulus = data(i,2); if stimulus >= cantL && stimulus <= cantU correctResponse = 3; %cant have old = 1; elseif stimulus >= notL && stimulus <= notU correctResponse = 2; %not mine old = 1; elseif stimulus >= mineL && stimulus <= mineU correctResponse = 1; %mine old = 1; elseif stimulus >= newL && stimulus <= newU correctResponse = 4; %new old = 0; end %correct sort? does their response match the exact number in list? response = data(i,3); if response == correctResponse %sort data(i,5) = 1; else data(i,5) = 0; end if old == 1 %recognition switch data(i,3) case 1 data(i,6) = 1; case 2 data(i,6) = 1; case 3 data(i,6) = 1; case 4 data(i,6) = 0; end elseif old == 0 switch data(i,3) case 1 data(i,6) = 0; case 2 data(i,6) = 0; case 3 data(i,6) = 0; case 4 data(i,6) = 1; end end end %display summary to console data sortScore = sum(data(:,5)); sortPerc = (sum(data(:,5))/210)*100; disp(strcat('Sort: ',int2str(sortScore),'/210 ---- ',int2str(sortPerc),'%')) recScore = sum(data(:,6)); recPerc = (sum(data(:,6))/210)*100; disp(strcat('Recognition: ',int2str(recScore),'/210 ---- ',int2str(recPerc),'%')) %output all to text file - space delimited dataFile = strcat('tsm',int2str(sub_num),'.txt'); dlmwrite(dataFile, data, ' ');