Can anybody help with persistant errors? (Matlab beginer)
Mostra commenti meno recenti
Hi all,
I am really new in Matlab and I am programming a small behavioral experiment with images.
Below is the script I am (desperately) trying to run, but keep encountering many errors, specifically 'Undefined function of variable 'wPtr'.
Whenever I evaluate the selection of every section, it seems Ok, but as soon as I try to run the script, errors pop out!
Thank you!
function X
%open the screen
[wPtr,rect]=Screen('OpenWindow',max(Screen('Screens')));
xCenter=rect(3)/2;
yCenter=rect(4)/2;
%Create textures
duckData=imread('C:\Users\louah\Desktop\StimuliEEG_semanticpriming\duck.jpg');
duckTexture=Screen('MakeTexture', wPtr,duckData);
BananaData=imread('C:\Users\louah\Desktop\StimuliEEG_semanticpriming\Banana.jpg');
BananaTexture=Screen('MakeTexture', wPtr,BananaData);
%Get size of image (both images the same size in this example)
%imageHeight
%imageWidth
%colorChannels
[imageHeight, imageWidth,colorChannels]=size(duckData);
%Set up left and right picture locations
gap=100; %distance of pics from center
leftRect=[xCenter-gap-imageWidth, yCenter-imageHeight/2, xCenter+imageHeight/2];
rightRect=[xCenter+gap, yCenter-imageHeight/2, xCenter+gap+imageWidth, yCenter+imageHeight/2];
%set up some vectors with our options
textures=[duckTexture, BananaTexture];
textureNames={'duck', 'Banana'};
rects={leftRect, rightRect};
rectNames={'left', 'right'};
%set up logfile
subjectCode=1;
logfilename=sprintf('%s_log.txt', subjectCode);
logfile=fopen(logfilename, 'a');
%set up response codes
duckCode=KbName('d');
BananaCode=KbName('b');
%hold correctness values
correctnessvalues=[];
%loop for 20 trials
for trial=1:20
%pick a random number 1 or 2
randTextureNum=randi(2);
%now use that number tp pick a texture
ourTexture=textures(randTextureNum);
%draw the pie
%windowPtr=wPtr
Screen('DrawTexture', wPtr, ourTexture, [], ourRect);
stimTime=Screen('Flip', wPtr);
[secs, keyPressed]=KbWait();
Screen('Flip', windowPtr);
response=find(keyPressed);
responseTime=secs-stimTime;
%figure out correctness
correct=0;
if randTextureNum==1
%duck picture was presented
if response==duckCode
correct=1;
end
elseif randTextureNum==2
%Banana picture was presented
if response==BananaCode
correct=1;
end
end
%save correctness
correctnessvalues(end+1)=correct;
%print out to file
fprintf(logfile, '%d\t%s\t%s\t%s\t%.3f\t%d\n', trial, textureNames{randTextureNum},...
rectNames{randRectNum}, KbName(response), responseTime, correct);
WaitSecs(.5);
end
Risposta accettata
Più risposte (1)
Walter Roberson
il 5 Ago 2015
0 voti
Categorie
Scopri di più su Graphics Performance in Centro assistenza e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!