Create a matrix using offset elements of a vector
    6 visualizzazioni (ultimi 30 giorni)
  
       Mostra commenti meno recenti
    
    WeiShan Ng
 il 25 Giu 2020
  
    
    
    
    
    Commentato: WeiShan Ng
 il 26 Giu 2020
            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?
0 Commenti
Risposta accettata
  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)
Vedere anche
Categorie
				Scopri di più su Resizing and Reshaping Matrices in Help Center e File Exchange
			
	Prodotti
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

