Skip to content

Commit e959df7

Browse files
committed
Dehankel debugged
1 parent d582e9b commit e959df7

File tree

2 files changed

+24
-13
lines changed

2 files changed

+24
-13
lines changed

pydmd/havok.py

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -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]])

tutorials/tutorial19/tutorial-19-havok.ipynb

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,20 @@
2626
"execution_count": 1,
2727
"id": "50f420c4",
2828
"metadata": {},
29-
"outputs": [],
29+
"outputs": [
30+
{
31+
"ename": "SyntaxError",
32+
"evalue": "invalid syntax (havok.py, line 324)",
33+
"output_type": "error",
34+
"traceback": [
35+
"Traceback \u001b[0;36m(most recent call last)\u001b[0m:\n",
36+
"\u001b[0m File \u001b[1;32m/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/IPython/core/interactiveshell.py:3526\u001b[0m in \u001b[1;35mrun_code\u001b[0m\n exec(code_obj, self.user_global_ns, self.user_ns)\u001b[0m\n",
37+
"\u001b[0m Cell \u001b[1;32mIn[1], line 5\u001b[0m\n from pydmd import HAVOK\u001b[0m\n",
38+
"\u001b[0;36m File \u001b[0;32m~/Desktop/PyDMD/PyDMD/pydmd/__init__.py:33\u001b[0;36m\n\u001b[0;31m from .havok import HAVOK\u001b[0;36m\n",
39+
"\u001b[0;36m File \u001b[0;32m~/Desktop/PyDMD/PyDMD/pydmd/havok.py:324\u001b[0;36m\u001b[0m\n\u001b[0;31m m =\u001b[0m\n\u001b[0m ^\u001b[0m\n\u001b[0;31mSyntaxError\u001b[0m\u001b[0;31m:\u001b[0m invalid syntax\n"
40+
]
41+
}
42+
],
3043
"source": [
3144
"import numpy as np\n",
3245
"import matplotlib.pyplot as plt\n",
@@ -37,7 +50,7 @@
3750
},
3851
{
3952
"cell_type": "code",
40-
"execution_count": 8,
53+
"execution_count": null,
4154
"id": "1567a968-7a03-4dda-ac6d-2dfbecbde882",
4255
"metadata": {},
4356
"outputs": [],

0 commit comments

Comments
 (0)