How can I generate the Hankel matrix using the measured datapoints?

29 ビュー (過去 30 日間)
Kanat Suleimenov
Kanat Suleimenov 2020 年 12 月 27 日
コメント済み: Ameer Hamza 2020 年 12 月 31 日
Dear Researchers, how can I generate a Hankel matrix based on the available data?
For instance, I have the measured data as y = [0 1 3 5 7; 0 2 4 6 8]; I want to generate the Hankel matrix as Y = [y(1) y(2) y(3) y(4); y(2) y(3) y(4) y(5)], where y(k) represents the measured data at k-th time instance, i.e. y(1) = [0; 0], so y(k) is a 2x1 column vector. So, I want to generate the Hankel matrix in which each element is a 2x1 column vector. In my case, I want to get this matrix Y = [0 1 3 5; 0 2 4 6; 1 3 5 7; 2 4 6 8]. This matrix y is taken just for demonstration purpose. It would be better if you suggest solution for high dimension data matrix. This help will be valuable for me! Thanks!

採用された回答

Ameer Hamza
Ameer Hamza 2020 年 12 月 27 日
Try something like this
y = [0 1 3 5 7; 0 2 4 6 8];
k = 2; % Y rows in output matrix
[m, n] = size(y);
i = hankel(1:n);
i = i(1:k, 1:end-1);
Y = reshape(y(:,i), m*k, [])
  4 件のコメント
Kanat Suleimenov
Kanat Suleimenov 2020 年 12 月 31 日
Dear Ameer, thanks for your help. It works now. Wish you best!
Ameer Hamza
Ameer Hamza 2020 年 12 月 31 日
I am glad to be of help!

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeCreating and Concatenating Matrices についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by