Azzera filtri
Azzera filtri

Create a matrix using offset elements of a vector

9 visualizzazioni (ultimi 30 giorni)
Let say I have a vector v = [v1, v2, v3], I would like to create a non-square matrix putting the vector v as tridiagonal elements like this ,
matrix = [v1, v2, v3, 0, 0, 0,..., 0;
0 , v1,v2,v3, 0, 0 ,...,0;
0 , 0, v1,v2,v3,0,.....,0;]
I know there's a diag command but it's only for square matrix. What's the way of creating a non-square matrix?

Risposta accettata

Kanika Gupta
Kanika Gupta il 25 Giu 2020
Try blktridiag:
A = blktridiag([1;2],[3;4],[5;6],4);
full(A)
ans =
1 5 0 0
2 6 0 0
3 1 5 0
4 2 6 0
0 3 1 5
0 4 2 6
0 0 3 1
0 0 4 2
Run help blktridiag for more info

Più risposte (0)

Prodotti

Community Treasure Hunt

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

Start Hunting!

Translated by