@@ -298,12 +298,10 @@ def hankel(self, X):
298298 f"provide at least { self ._delays * self ._lag } snapshots."
299299 )
300300
301- num_cols = m - ((self ._delays - 1 ) * self ._lag )
302- H = np .empty ((n * self ._delays , num_cols ))
301+ Hm = m - ((self ._delays - 1 ) * self ._lag )
302+ H = np .empty ((n * self ._delays , Hm ))
303303 for i in range (self ._delays ):
304- H [i * n : (i + 1 ) * n ] = X [
305- :, i * self ._lag : i * self ._lag + num_cols
306- ]
304+ H [i * n : (i + 1 ) * n ] = X [:, i * self ._lag : i * self ._lag + Hm ]
307305
308306 return H
309307
@@ -319,12 +317,12 @@ def dehankel(self, H):
319317 """
320318 if not isinstance (H , np .ndarray ) or H .ndim != 2 :
321319 raise ValueError ("Please ensure that input data is a 2D array." )
322- n = int ( H .shape [ 0 ] / self . _delays )
323- # TODO: debug this!
324- m =
325- X = np .empty (n , )
326- for
327- X = np . hstack ([ H [: n ], H [ n :, - self ._lag ]. reshape ( n , - 1 , order = "F" )])
320+ Hn , Hm = H .shape
321+ n = int ( Hn / self . _delays )
322+ m = int ( Hm + (( self . _delays - 1 ) * self . _lag ))
323+ X = np .empty (n , m )
324+ for i in range ( self . _delays ):
325+ X [:, i * self . _lag : i * self ._lag + Hm ] = H [ i * n : ( i + 1 ) * n ]
328326 return X
329327
330328 # dummy_data = np.array([[1, 2, 3, 4, 5, 6]])
0 commit comments