Use kron to build a matrix

14 次查看(过去 30 天)
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.

采纳的回答

Matt J
Matt J 2021-5-24
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 个评论
Jyoti Mangal
Jyoti Mangal 2021-5-24
Thank you so much! This worked like a charm
Stephen23
Stephen23 2021-5-25
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

请先登录,再进行评论。

更多回答(1 个)

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

类别

Help CenterFile Exchange 中查找有关 Linear Algebra 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by