フィルターのクリア

Create a matrix using offset elements of a vector

9 ビュー (過去 30 日間)
WeiShan Ng
WeiShan Ng 2020 年 6 月 25 日
コメント済み: WeiShan Ng 2020 年 6 月 26 日
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?

採用された回答

Kanika Gupta
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
  1 件のコメント
WeiShan Ng
WeiShan Ng 2020 年 6 月 26 日
Thank you. This is exactly what I am looking for!

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeMatrix Indexing についてさらに検索

製品

Community Treasure Hunt

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

Start Hunting!

Translated by