Redefine value in each trial


Author
Message
skotturi
skotturi
Respected Member (433 reputation)Respected Member (433 reputation)Respected Member (433 reputation)Respected Member (433 reputation)Respected Member (433 reputation)Respected Member (433 reputation)Respected Member (433 reputation)Respected Member (433 reputation)Respected Member (433 reputation)
Group: Forum Members
Posts: 2, Visits: 4
Dear Community, 

I am trying to use the Prospective Time Estimation task provided by Inquisit. 
Instead of just doing one trial at a fixed time interval of 53 seconds, I am trying to do multiple trials of random length. 

Instead of using:
<values>
...
/timeinterval = 5300
</values>

I'm using:
<values>
...
/timeinterval = ceil(rand(45,75))*1000
</values>
To achieve a random time interval in between 45 & 75 seconds. 

I'm currently just running two experiment blocks:
<expt >
/blocks = [1 = timeestimationstart, 2=timeestimationstart]
</expt>

This works except that the time interval variable isn't reassigned the second time, so my interval is the same for both trials. 
I have tried to force the reevaluation of the timeinterval variable:
<trial start>
/stimulustimes = [0=start, circle]
/timeout = [values.timeinterval = ceil(rand(45, 75))*1000]
/branch = [trial.end]
/recorddata = false
</trial>

But this fails with "Expression '[values.timeinterval' is invalid. Expression contains an unknown element or property name."
I could just hardcode a second timeinterval, a second trial and second variable to be exported but I'd prefer a more elegant solution. 
It's been a while since I've coded much in Inquisit, been spending most of my time in python, js & R. Thus I'm undoubtedly over thinking this, I think...

The code I'm working with can be found here (the prospective task): http://www.millisecond.com/download/library/TimeEstimation/

Cheers, 
Sante






Dave
Dave
Supreme Being (797K reputation)Supreme Being (797K reputation)Supreme Being (797K reputation)Supreme Being (797K reputation)Supreme Being (797K reputation)Supreme Being (797K reputation)Supreme Being (797K reputation)Supreme Being (797K reputation)Supreme Being (797K reputation)
Group: Administrators
Posts: 10K, Visits: 53K
#1:
Values are -- by design -- static. I.e. the expression in

<values>
...
/timeinterval = ceil(rand(45,75))*1000
</values>

will get evaluated once and then values.timeinterval will remain unchanged. It is supposed to.

#2:
This
<trial start>
...
/timeout = [values.timeinterval = ceil(rand(45, 75))*1000]
...
</trial>

is simply invalid syntax. The correct way to express it would be simply

<trial start>
...
/timeout = ceil(rand(45, 75))*1000
...
</trial>

#3:

The proper way to do this is
<values>
...
/timeinterval = 5300
</values>

<trial start>
...
/ontrialbegin = [values.timeinterval = ceil(rand(45, 75))*1000]
/timeout = values.timeinterval
...
</trial>

skotturi
skotturi
Respected Member (433 reputation)Respected Member (433 reputation)Respected Member (433 reputation)Respected Member (433 reputation)Respected Member (433 reputation)Respected Member (433 reputation)Respected Member (433 reputation)Respected Member (433 reputation)Respected Member (433 reputation)
Group: Forum Members
Posts: 2, Visits: 4
Great, that works and makes a lot more sense. 
The /ontrialbegin method was just what I was looking for!
Cheers, 
Sante

GO

Merge Selected

Merge into selected topic...



Merge into merge target...



Merge into a specific topic ID...




Reading This Topic

Explore
Messages
Mentions
Search