Create a matrix using offset elements of a vector
    6 次查看(过去 30 天)
  
       显示 更早的评论
    
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 个评论
采纳的回答
  Kanika Gupta
      
 2020-6-25
        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
更多回答(0 个)
另请参阅
类别
				在 Help Center 和 File Exchange 中查找有关 Resizing and Reshaping Matrices 的更多信息
			
	产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

