将矢量转换为一个状态......一个多维数组

时间:2015-12-15 18:03:41

标签: arrays multidimensional-array

所以这就是问题......

我有一个值向量,比如说:

x = [0,4,2,0]

与每个x对应的可能值范围:

0: 0-9
4: 0-9
2: 0-5
0: 0-1

这意味着状态空间为:10*10*6*2

我需要一个函数,计算状态,在特定向量的状态空间内提供一个唯一的整数值。例如:

calc_state(x) -> (10*6*2)*0 + (6*2)*4 + (2)*2 + (1)*0

我的问题是:这是正确的公式吗?还是我工作得太小了?我觉得应该有另外10个因素...但是当我写出来时,我感到更有信心它是正确的...

2 个答案:

答案 0 :(得分:1)

是。 strides属性可以帮助编写call_state(x)

space=arange(10*10*6*2).reshape(10,10,6,2)
def call_state(x): return (x*space.strides).sum()

答案 1 :(得分:0)

是的,那很有效。额外因子10来自最大化所有向量条目,在这种情况下结果出现在10*10*6*2 - 1