Use kron to build a matrix

9 visualizzazioni (ultimi 30 giorni)
Jyoti Mangal
Jyoti Mangal il 24 Mag 2021
Commentato: Stephen23 il 25 Mag 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.

Risposta accettata

Matt J
Matt J il 24 Mag 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 Commenti
Jyoti Mangal
Jyoti Mangal il 24 Mag 2021
Thank you so much! This worked like a charm
Stephen23
Stephen23 il 25 Mag 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

Accedi per commentare.

Più risposte (1)

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

Community Treasure Hunt

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

Start Hunting!

Translated by