我对之前的回答对行为测试中当前响应的影响感兴趣。例如,如果在我的测试中有三个先前的试验,则参与者回答' no',' yes',' yes' '是'对当前试用版的回复与先前回答' yes',' yes',' no' 等有所不同,依此类推。
为了分析这一点,我需要在我的数据集中找到特定响应序列的所有实例。例如每当是是是发生时,每次是,否是发生......,等等所有可能的是/否序列排列。
为了做到这一点,我可以在Matlab中硬编码一长串if / else语句(用于固定数量的先前试验),或者我可以编写每个可能的序列并搜索它但两种方法都很慢来写。
而不是手动编码以进行固定数量的先前试验,即之前的三个响应,是否有合理的解决方案可用于之前的 n 试验?即,一旦我想分析前5个试验,而不是之前的3个试验,所需的if / else声明链就变得无法忍受了!
NB。响应数据总是二进制的(即左对右,或对与否等)。
非常感谢提前。
修改的 以下插图可能有助于澄清。这个快速示例按序列中的每个响应进行运行,如果当前响应为“'”,则计算前两次尝试中是/否的每个排列的实例数。
mySequenceData = {'y' 'y' 'y' 'n' 'n' 'y' 'n' 'n' 'y' 'y' 'n' 'y'};
numPreviousTrials = 2;
yyCount = 0;
ynCount = 0;
nyCount = 0;
nnCount = 0;
for i = numPreviousTrials+1:length(mySequenceData)
currentTrial = mySequenceData(i);
if strcmp(mySequenceData(i), 'y')
if strcmp(mySequenceData(i-1), 'y')
if strcmp(mySequenceData(i-2), 'y')
yyCount = yyCount+1;
elseif strcmp(mySequenceData(i-2), 'n')
nyCount = nyCount+1;
end
elseif strcmp(mySequenceData(i-1), 'n')
if strcmp(mySequenceData(i-2), 'y')
ynCount = ynCount+1;
elseif strcmp(mySequenceData(i-2), 'n')
nnCount = nnCount+1;
end
end
end
end
如果我现在想要计算前3次试验或5次试验中的y / n排列,依此类推,我必须重新编写所有这些,并使用if / else语句变得几乎不可行。
我的问题是试图找到一个我可以从一开始就为n次试验而不是特定数量的先前试验的解决方案。
再次感谢。
答案 0 :(得分:0)
它应该适合你:
bin\plugin install C:\Downloads\myplugin.gem
矩阵A2列出了所有可能的二进制组合。 矩阵counting_N计算组合出现的时间。