- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试运行一个平衡程序。我无法理解 Python 正在做什么来获取我收到的输出。我有 16 张 map 的 8 个变体。变体由 timingConditions
* distractionConditions
定义。初始变量定义有4个关键部分:
inst
是包含所有 8 个变体 * 16 个实验图的列表按变体排序( map 实际上就像电子游戏 map )。剩下 len(inst) = 128
。inst
在conds
中被分割为8个子列表。这些中的每一个子列表代表特定变体的映射 1-16。各指标在子列表中代表一个映射/变体组合。调用 conds
中每个子列表的索引将清楚地显示这一点。这 16 个 map 分为 8 个列表,每个列表包含两个 map ,在变量 MapGroups
中定义。这 8 个列表用于下面的矩阵中。
counterBalanceMatrix
表示条件分配映射的八种唯一平衡排序。 range(1,9)
中的每个主题都分配到这些行之一。行中的数字代表 map 组。列(即索引排序)表示变体到映射组的分配。例如,counterBalanceMatrix[0][0]
返回1
,第一个索引对应于第一个变体列SSTrue
的赋值;第二个索引对应于MapGroups[0]
(将返回“0”、“15”)。因此,所需的输出将为映射 0 和 15(或没有基于零的排序的 1 和 16)分配 SS-True。您可以将其想象如下:
####+--------+--------+--------+--------+---------+---------+---------+---------+
####| SSTrue | SLTrue | LSTrue | LLTrue | SSFalse | SLFalse | LSFalse | LLFalse |
####+--------+--------+--------+--------+---------+---------+---------+---------+
####| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
####| 2 | 3 | 4 | 5 | 6 | 7 | 8 | 1 |
####| 3 | 4 | 5 | 6 | 7 | 8 | 1 | 2 |
####| 4 | 5 | 6 | 7 | 8 | 1 | 2 | 3 |
####| 5 | 6 | 7 | 8 | 1 | 2 | 3 | 4 |
####| 6 | 7 | 8 | 1 | 2 | 3 | 4 | 5 |
####| 7 | 8 | 1 | 2 | 3 | 4 | 5 | 6 |
####| 8 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
####+--------+--------+--------+--------+---------+---------+---------+----- ----+
下面的代码的预期输出为 subject in range(1,9):
,每个 MapGroup
将有一个实例,并且每个都有两个观察结果变体(例如 SS-TRUE、LL-False 等)。在所有主题中,所有MapGroups
和变体都会有相同的观察结果。 这部分代码按预期工作。
import re
timingConditions = ["SS","SL","LS","LL"]
distractionConditions = ["True","False"]
maps = [i for i in range(1,17)]
#This loop sets up the 128 (16*8) variants. Inst for instances of scenario.
inst = []
for d in distractionConditions:
for t in timingConditions:
for map in maps:
inst.append(str(str(map)+"-"+t+"-"+d))
conds = [inst[0:16],inst[16:32],inst[32:48],inst[48:64],inst[64:80],inst[80:96],inst[96:112],inst[112:128]]
MapGroups= [[0,8],
[1,9],
[2,10],
[3,11],
[4,12],
[5,13],
[6,14],
[7,15]]
counterBalanceMatrix= [[1,2,3,4,5,6,7,8],
[2,3,4,5,6,7,8,1],
[3,4,5,6,7,8,1,2],
[4,5,6,7,8,1,2,3],
[5,6,7,8,1,2,3,4],
[6,7,8,1,2,3,4,5],
[7,8,1,2,3,4,5,6],
[8,1,2,3,4,5,6,7]]
for subject in range(1,9):
cRow = counterBalanceMatrix[(subject-1)%8]#Use the modulus operator to find out which row to use in counterbalancing for this subject.
scenArray = []
for group in range(0,8):#This loops across map groups and look up their assigned interruption condition
scenArray.extend([conds[cRow[group]-1][i] for i in MapGroups[group]])
print "****","Participant",subject,"Correct Day 1****"
print scenArray
print "\n\n"
这就是问题所在:我想重复这个过程,但镜像。也就是说,无论 MapGroups 中的每个 列表
最初分配的是什么变体,我都希望它被反转(例如,如果您收到的 MapGroups[0]
为 True,那么我希望它们为 False。MapGroups[0]
已指定为 SS,现在必须为 LL。
我最初的解决方案是反转 counterBalanceMatrix 并应用相同的循环。然而这不起作用:
counterBalanceMatrixReverse= []
for list in counterBalanceMatrix:
counterBalanceMatrixReverse.append(list[::-1])
###And then run the exact same loop over.
for subject in range(1,9):
cRow = counterBalanceMatrixReverse[(subject-1)%8]
#
scenArray = []
for group in range(0,8):
scenArray.extend([conds[cRow[group]-1][i] for i in MapGroups[group]])
print "****","Participant",subject,"Broken Reversed 2****"
print scenArray
print "\n\n"
输出不正确,例如:
>Participant 4
>'2-SL-True', '10-SL-True'
Participant 4 Reversed
>'2-SS-False', '10-SS-False'
Exptected Reversed Ouput:
>'2-LS-False', '10-LS-False'
但是,简单地反转 cond 数组确实解决了我的问题
condsreverse = []
condsreverse.extend(conds[::-1])
for subject in range(1,9):
cRow = counterBalanceMatrix[(subject-1)%8]#Note I use same matrix
scenArray = []
for group in range(0,8):
scenArray.extend([condsreverse[cRow[group]-1][i] for i in MapGroups[group]])
print "****","Subject",subject,"Correct Reverse****"
print scenArray
print "\n\n"
我已经在这上面坐了三天了,我不明白为什么最初的逆向解决方案没有产生所需的输出。
最佳答案
我相信解决方案如下,只是为了结束问题。
我的错误是我假设 [conds[cRow[group]-1]
正在根据 cRow[i]
的索引和cRow[i]
只是用来调用特定的 map 。然而,实际做的是根据cRow[i]的值分配变体。因此,“列”没有根据索引分配给 MapGroups
。这意味着简单地反转 counterBalanceMatrix
基本上只是创建 counterBalanceMatrix
的另一个版本。
我能让条件相互镜像的唯一方法是颠倒conds
的顺序,因为这是分配中实际使用的列表;当然,除非我想更改 scenArray.extend([condsreverse[cRow[group]-1][i] for i in MapGroups[group]])
来调用每个项目的索引(对于原始和反转),然后根据该索引调用 map 组,如下所示:
for index in range(0,8):
scenArray.extend([conds[index][i] for i in MapGroups[cRow[index]-1]])
PS:我想把它写成一个问题可以帮助我认识到自己的错误。对此表示抱歉。
关于python - 两种反转列表的方法之间的输出不一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36618512/
我需要修复 getLineNumberFor 方法,以便如果 lastName 的第一个字符位于 A 和 M 之间,则返回 1;如果它位于 N 和 Z 之间,则返回 2。 在我看来听起来很简单,但我不
您好,感谢您的帮助!我有这个: 0 我必须在每次点击后增加“pinli
Javascript 中是否有一种方法可以在不使用 if 语句的情况下通过 switch case 结构将一个整数与另一个整数进行比较? 例如。 switch(integer) { case
我有一列是“日期”类型的。如何在自定义选项中使用“之间”选项? 最佳答案 请注意,您有2个盒子。 between(在SQL中)包含所有内容,因此将框1设置为:DATE >= startdate,将框2
我有一个表,其中包含年、月和一些数字列 Year Month Total 2011 10 100 2011 11 150 2011 12 100 20
这个问题已经有答案了: Extract a substring between double quotes with regular expression in Java (2 个回答) how to
我有一个带有类别的边栏。正如你在这里看到的:http://kees.een-site-bouwen.nl/ url 中类别的 ID。带有 uri 段(3)当您单击其中一个类别时,例如网页设计。显示了一
这个问题在这里已经有了答案: My regex is matching too much. How do I make it stop? [duplicate] (5 个答案) 关闭 4 年前。 我
我很不会写正则表达式。 我正在尝试获取括号“()”之间的值。像下面这样的东西...... $a = "POLYGON((1 1,2 2,3 3,1 1))"; preg_match_all("/\((
我必须添加一个叠加层 (ImageView),以便它稍微移动到包含布局的左边界的左侧。 执行此操作的最佳方法是什么? 尝试了一些简单的方法,比如将 ImageView 放在布局中并使用负边距 andr
Rx 中是否有一些扩展方法来完成下面的场景? 我有一个开始泵送的值(绿色圆圈)和其他停止泵送的值(簧片圆圈),蓝色圆圈应该是预期值,我不希望这个命令被取消并重新创建(即“TakeUntil”和“Ski
我有一个看起来像这样的数据框(Dataframe X): id number found 1 5225 NA 2 2222 NA 3 3121 NA 我有另一个看起来
所以,我正在尝试制作正则表达式,它将解析存储在对象中的所有全局函数声明,例如,像这样 const a = () => {} 我做了这样的事情: /(?:const|let|var)\s*([A-z0-
我正在尝试从 Intellivision 重新创建 Astro-Smash,我想让桶保持在两个 Angular 之间。我只是想不出在哪里以及如何让这个东西停留在两者之间。 我已经以各种方式交换了函数,
到处检查但找不到答案。 我有这个页面,我使用 INNER JOIN 将两个表连接在一起,获取它们的值并显示它们。我有这个表格,用来获取变量(例如开始日期、结束日期和卡号),这些变量将作为从表中调用值的
我陷入了两个不同的问题/错误之间,无法想出一个合适的解决方案。任何帮助将不胜感激 上下文、FFI 和调用大量 C 函数,并将 C 类型包装在 rust 结构中。 第一个问题是ICE: this pat
我在 MySQL 中有一个用户列表,在订阅时,时间戳是使用 CURRENT_TIMESTAMP 在数据库中设置的。 现在我想从此表中选择订阅日期介于第 X 天和第 Y 天之间的表我尝试了几个查询,但不
我的输入是开始日期和结束日期。我想检查它是在 12 月 1 日到 3 月 31 日之间。(年份可以更改,并且只有在此期间内或之外的日期)。 到目前为止,我还没有找到任何关于 Joda-time 的解决
我正在努力了解线程与 CPU 使用率的关系。有很多关于线程与多处理的讨论(一个很好的概述是 this answer )所以我决定通过在运行 Windows 10、Python 3.4 的 8 CPU
我正在尝试编写 PHP 代码来循环遍历数组以创建 HTML 表格。我一直在尝试做类似的事情: fetchAll(PDO::FETCH_ASSOC); ?>
我是一名优秀的程序员,十分优秀!