datablock()#

static StateInputOperator.datablock(states, inputs)[source]#

Return the data matrix block corresponding to the operator, the Khatri–Rao product \(\U\odot\Qhat\) where \(\Qhat\) is states and \(\U\) is inputs.

Since \(\Ophat_\ell(\qhat,\u) = \Ohat_{\ell}\d_{\ell}(\qhat,\u)\) with \(\Ohat_{\ell} = \Nhat\) and \(\d_{\ell}(\qhat,\u) = \u\otimes\qhat\), the data block is

\[\D\trp = \left[\begin{array}{ccc} \d_{\ell}(\qhat_0,\u_0) & \cdots & \d_{\ell}(\qhat_{k-1},\u_{k-1}) \end{array}\right] = \left[\begin{array}{ccc} \u_0 \otimes \qhat_0 & \cdots & \u_{k-1} \otimes \qhat_{k-1} \end{array}\right] \in \RR^{rm \times k}.\]
Parameters
states(r, k) or (k,) ndarray

State vectors (not used). If one dimensional, it is assumed that \(r = 1\).

inputs(m, k) or (k,) ndarray or None

Input vectors. Each column is a single input vector. If one dimensional, it is assumed that \(m = 1\).

Returns
product_(m, k) ndarray or None

Compressed Khatri-Rao product of the input_ and the states.