Use kron to build a matrix

14 views (last 30 days)
Jyoti Mangal
Jyoti Mangal on 24 May 2021
Commented: Stephen23 on 25 May 2021
Hi,
I would like to build a matrix that resembles something like
A = [-1 1 0 0 0 0 0 0;
0 -1 1 0 0 0 0 0;
0 0 -1 1 0 0 0 0;
0 0 0 -1 1 0 0 0;
0 0 0 0 -1 1 0 0;
0 0 0 0 0 -1 1 0;
0 0 0 0 0 0 -1 1];
Can I use kron function to build something like this? One of the things that needs to be a variable will be the number of rows, so I need my kron function to be flexible such that it can build more such matrices, for eg. a matrix with four such rows would look like
A = [-1 1 0 0 0;
0 -1 1 0 0;
0 0 -1 1 0;
0 0 0 -1 1;]
Also happy to do using any other method than kron. Thank you for your help.

Accepted Answer

Matt J
Matt J on 24 May 2021
No, the matrix you've shown is not a Kronecker product, but the matrix is easily generated using diff, e.g.,
A=full(diff(speye(7)))
A = 6×7
-1 1 0 0 0 0 0 0 -1 1 0 0 0 0 0 0 -1 1 0 0 0 0 0 0 -1 1 0 0 0 0 0 0 -1 1 0 0 0 0 0 0 -1 1
  2 Comments
Jyoti Mangal
Jyoti Mangal on 24 May 2021
Thank you so much! This worked like a charm
Stephen23
Stephen23 on 25 May 2021
A = diff(eye(7)) % no need for sparse array
A = 6×7
-1 1 0 0 0 0 0 0 -1 1 0 0 0 0 0 0 -1 1 0 0 0 0 0 0 -1 1 0 0 0 0 0 0 -1 1 0 0 0 0 0 0 -1 1

Sign in to comment.

More Answers (1)

Sulaymon Eshkabilov
Sulaymon Eshkabilov on 24 May 2021
Hi,
In you exercise, use eye() and kron(). and then change the necessary element of the generated matrix if necessary.
Good luck

Categories

Find more on Linear Algebra in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!