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

41 次查看(过去 30 天)
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 个评论

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Creating and Concatenating Matrices 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by