Is there a function that populates a matrix whose minor diagonal are all the same?

2 views (last 30 days)
Is there a function that populates a matrix whose minor diagonal are all the same, according to the given (odd-numbered) vector? For example, for
[1, 7.9, 100, 18.2, -3.4]
, we can get a 3x3 matrix:
1 7.9 100
7.9 100 18.2
100 18.2 -3.4
I can of course populate this matrix myself. I am just wondering if there is a single function provided by Matlab that can do it. Thanks.

Accepted Answer

Stephen23
Stephen23 on 18 Oct 2018
Edited: Stephen23 on 18 Oct 2018
Use hankel:
>> V = [1,7.9,100,18.2,-3.4];
>> hankel(V(1:3),V(3:end))
ans =
1 7.9 100
7.9 100 18.2
100 18.2 -3.4
You can easily calculate the midpoint index:
N = (1+numel(V))/2;
hankel(V(1:N),V(N:end))

More Answers (0)

Categories

Find more on Multidimensional Arrays in Help Center and File Exchange

Products

Community Treasure Hunt

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

Start Hunting!