Nehmen wir an, dass in einer Erkenntnis x = 1 und Theta = 3 ist. Der natürliche Weg, dies darzustellen, ist ein Tupel (1,3). Ich möchte jedoch stattdessen den Status (1,3) durch einen einzelnen Index kennzeichnen. Eine „Brute-Force“-Methode hierfür besteht darin, das kartesische Produkt aller möglichen geordneten Paare (x,theta) zu bilden und es nachzuschlagen:
Code: Select all
import numpy as np
import itertools
N_x = 3
N_theta = 4
np.random.seed(seed = 1)
x = np.random.choice(range(N_x))
theta = np.random.choice(range(N_theta))
def get_box(x, N_x, theta, N_theta):
states = list(itertools.product(range(N_x),range(N_theta)))
inds = [i for i in range(len(states)) if states[i]==(x,theta)]
return inds[0]
print (x, theta)
box = get_box(x, N_x, theta, N_theta)
print box
Code: Select all
[(0, 0), (0, 1), (0, 2), (0, 3), (1, 0), (1, 1), (1, 2), (1, 3), (2, 0), (2, 1), (2, 2), (2, 3)]