class_docstr: !
  @brief Container of output dynamic of the chaotic neural network where states of each neuron during simulation are stored.
  
  @see cnn_network
class_docstr_tok: ["!","@","brief","Container","of","output","dynamic","of","the","chaotic","neural","network","where","states","of","each","neuron","during","simulation","are","stored",".","@","see","cnn_network"]
docstr: !
  @brief Allocates observation matrix in line with output dynamic of the network.
  @details Matrix where state of each neuron is denoted by zero/one in line with Heaviside function on each iteration.
  
  @return (list) Observation matrix of the network dynamic.
docstr_tok: ["!","@","brief","Allocates","observation","matrix","in","line","with","output","dynamic","of","the","network",".","@","details","Matrix","where","state","of","each","neuron","is","denoted","by","zero\/one","in","line","with","Heaviside","function","on","each","iteration",".","@","return","(","list",")","Observation","matrix","of","the","network","dynamic","."]
code: def allocate_observation_matrix(self):
      """!
      @brief Allocates observation matrix in line with output dynamic of the network.
      @details Matrix where state of each neuron is denoted by zero/one in line with Heaviside function on each iteration.
  
      @return (list) Observation matrix of the network dynamic.
  
      """
      number_neurons = len(self.output[0])
      observation_matrix = []
  
      for iteration in range(len(self.output)):
          obervation_column = []
          for index_neuron in range(number_neurons):
              obervation_column.append(
                  heaviside(self.output[iteration][index_neuron])
              )
  
          observation_matrix.append(obervation_column)
  
      return observation_matrix
  
imports: import math
  import numpy
  import random
  import matplotlib.pyplot
  from matplotlib import rcParams
  from matplotlib.font_manager import FontProperties
  from mpl_toolkits.mplot3d import Axes3D
  from enum import IntEnum
  from scipy.spatial import Delaunay
  from pyclustering.utils import euclidean_distance_square, average_neighbor_distance, heaviside, draw_dynamics
label_desc: Use image node_id 3 for calling the cnn_dynamic obj's underlying member method code with example usage: obj.allocate_observation_matrix() and returns: observation_matrix