Does the variable function still exist in Inquisit 5?


Author
Message
pops
pops
Esteemed Member (2.3K reputation)Esteemed Member (2.3K reputation)Esteemed Member (2.3K reputation)Esteemed Member (2.3K reputation)Esteemed Member (2.3K reputation)Esteemed Member (2.3K reputation)Esteemed Member (2.3K reputation)Esteemed Member (2.3K reputation)Esteemed Member (2.3K reputation)
Group: Forum Members
Posts: 69, Visits: 85
Hi there.

I'm back using Inquisit - version 5 is quite different from previous versions (although it has been a while)....

I'm keen to assign some parameters based on Group number. According to this post:https://www.millisecond.com/forums/Topic23124.aspx I can use the <variable> function - but there is nothing in the help about this function? I'm not sure whether the function should still be used or not?

I want to set up different numbers of trials etc, depending on the group number. So I was thinking:

<variables>
/group = (1 of 2) (blocktrials=blocktrialsGroup1)
/group = (2 of 2) (blocktrials=blocktrialsGroup1)
</variables>

<parameters>
/blocktrialsGroup1 = 24
/blocktrialsGroup2 = 44
</parameters>

Then when I call the parameter
<block runExp>
/stop = [
values.count_sequence == parameters.blocktrials]
</block>

It of course doesn't work (in the above example I don't actually have a parameters.blocktrials so not that surprising). But I've tried to have an empty parameter and then make /blocktrialsGroup1 a value, I've tried to have them all as values, but I'm not getting anywhere. But I'm also not sure whether the variable function should be used or not?
Advice appreciated
Thanks

Dave
Dave
Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)
Group: Administrators
Posts: 12K, Visits: 98K
pops - 5/22/2019
Hi there.

I'm back using Inquisit - version 5 is quite different from previous versions (although it has been a while)....

I'm keen to assign some parameters based on Group number. According to this post:https://www.millisecond.com/forums/Topic23124.aspx I can use the <variable> function - but there is nothing in the help about this function? I'm not sure whether the function should still be used or not?

I want to set up different numbers of trials etc, depending on the group number. So I was thinking:

<variables>
/group = (1 of 2) (blocktrials=blocktrialsGroup1)
/group = (2 of 2) (blocktrials=blocktrialsGroup1)
</variables>

<parameters>
/blocktrialsGroup1 = 24
/blocktrialsGroup2 = 44
</parameters>

Then when I call the parameter
<block runExp>
/stop = [
values.count_sequence == parameters.blocktrials]
</block>

It of course doesn't work (in the above example I don't actually have a parameters.blocktrials so not that surprising). But I've tried to have an empty parameter and then make /blocktrialsGroup1 a value, I've tried to have them all as values, but I'm not getting anywhere. But I'm also not sure whether the variable function should be used or not?
Advice appreciated
Thanks

The <variables> element is still there for compatibility reasons, but its use is generally discouraged except for a very limited set of use cases. What <variables> does (and always did) is substitute entire elements. Like this:

<variables>
/group = (1 of 2) (exampleitems=items_a)
/group = (2 of 2) (exampleitems=items_b)
/groupassignment = subjectnumber
</variables>

<block exampleblock>
/ trials = [1-4 = exampletrial]
</block>

<trial exampletrial>
/ stimulusframes = [1=exampletext]
/ validresponse = (57)
</trial>

<text exampletext>
/ items = exampleitems
/ select = sequence
</text>

<item items_a>
/ 1 = "A1"
/ 2 = "A2"
/ 3 = "A3"
/ 4 = "A4"
</item>

<item items_b>
/ 1 = "B1"
/ 2 = "B2"
/ 3 = "B3"
/ 4 = "B4"
</item>

Notice that there is no <item exampleitems> element in the above -- that is the variable or placeholder.

For group #1 <item items_a> is substituted for <item exampleitems>.
For group #2 <item items_b> is substituted for <item exampleitems>.

So, in other words, the way you're trying to use the <variables> element here is not the way it's supposed to be used and it won't work (and never would have worked) that way.

Instead, what you'll want to do is something like this:

<parameters>
/blocktrialsGroup1 = 24
/blocktrialsGroup2 = 44
</parameters>

<values>
/ blocktrials = 0
...
</values>

// condition 1: 24 trials
<expt>
/ onexptbegin = [values.blocktrials = parameters.blocktrialsGroup1; ]
/ blocks = [1=runExp]
/ subjects = (1 of 2)
/ groupassignment = subjectnumber
</expt>

// condition 2: 44 trials
<expt>
/ onexptbegin = [values.blocktrials = parameters.blocktrialsGroup2; ]
/ blocks = [1=runExp]
/ subjects = (2 of 2)
/ groupassignment = subjectnumber
</expt>

with

<block runExp>
/stop = [
values.count_sequence == values.blocktrials]
...
</block>

pops
pops
Esteemed Member (2.3K reputation)Esteemed Member (2.3K reputation)Esteemed Member (2.3K reputation)Esteemed Member (2.3K reputation)Esteemed Member (2.3K reputation)Esteemed Member (2.3K reputation)Esteemed Member (2.3K reputation)Esteemed Member (2.3K reputation)Esteemed Member (2.3K reputation)
Group: Forum Members
Posts: 69, Visits: 85
Dave - 5/22/2019
pops - 5/22/2019
Hi there.

I'm back using Inquisit - version 5 is quite different from previous versions (although it has been a while)....

I'm keen to assign some parameters based on Group number. According to this post:https://www.millisecond.com/forums/Topic23124.aspx I can use the <variable> function - but there is nothing in the help about this function? I'm not sure whether the function should still be used or not?

I want to set up different numbers of trials etc, depending on the group number. So I was thinking:

<variables>
/group = (1 of 2) (blocktrials=blocktrialsGroup1)
/group = (2 of 2) (blocktrials=blocktrialsGroup1)
</variables>

<parameters>
/blocktrialsGroup1 = 24
/blocktrialsGroup2 = 44
</parameters>

Then when I call the parameter
<block runExp>
/stop = [
values.count_sequence == parameters.blocktrials]
</block>

It of course doesn't work (in the above example I don't actually have a parameters.blocktrials so not that surprising). But I've tried to have an empty parameter and then make /blocktrialsGroup1 a value, I've tried to have them all as values, but I'm not getting anywhere. But I'm also not sure whether the variable function should be used or not?
Advice appreciated
Thanks

The <variables> element is still there for compatibility reasons, but its use is generally discouraged except for a very limited set of use cases. What <variables> does (and always did) is substitute entire elements. Like this:

<variables>
/group = (1 of 2) (exampleitems=items_a)
/group = (2 of 2) (exampleitems=items_b)
/groupassignment = subjectnumber
</variables>

<block exampleblock>
/ trials = [1-4 = exampletrial]
</block>

<trial exampletrial>
/ stimulusframes = [1=exampletext]
/ validresponse = (57)
</trial>

<text exampletext>
/ items = exampleitems
/ select = sequence
</text>

<item items_a>
/ 1 = "A1"
/ 2 = "A2"
/ 3 = "A3"
/ 4 = "A4"
</item>

<item items_b>
/ 1 = "B1"
/ 2 = "B2"
/ 3 = "B3"
/ 4 = "B4"
</item>

Notice that there is no <item exampleitems> element in the above -- that is the variable or placeholder.

For group #1 <item items_a> is substituted for <item exampleitems>.
For group #2 <item items_b> is substituted for <item exampleitems>.

So, in other words, the way you're trying to use the <variables> element here is not the way it's supposed to be used and it won't work (and never would have worked) that way.

Instead, what you'll want to do is something like this:

<parameters>
/blocktrialsGroup1 = 24
/blocktrialsGroup2 = 44
</parameters>

<values>
/ blocktrials = 0
...
</values>

// condition 1: 24 trials
<expt>
/ onexptbegin = [values.blocktrials = parameters.blocktrialsGroup1; ]
/ blocks = [1=runExp]
/ subjects = (1 of 2)
/ groupassignment = subjectnumber
</expt>

// condition 2: 44 trials
<expt>
/ onexptbegin = [values.blocktrials = parameters.blocktrialsGroup2; ]
/ blocks = [1=runExp]
/ subjects = (2 of 2)
/ groupassignment = subjectnumber
</expt>

with

<block runExp>
/stop = [
values.count_sequence == values.blocktrials]
...
</block>

Fab thanks

GO

Merge Selected

Merge into selected topic...



Merge into merge target...



Merge into a specific topic ID...




Reading This Topic

Explore
Messages
Mentions
Search