How best and most efficient way to build this matrix

1 回表示 (過去 30 日間)
Scott Banks
Scott Banks 2023 年 9 月 3 日
コメント済み: Matt J 2023 年 9 月 4 日
Hi guys,
I am wondering what is the best and most efficient way to build this matrix using loops and functions? Rather than inputting the numbers manually?
A = [-2 1 0 0 0 0 0 0 0 0
6 -4 1 0 0 0 0 0 0 0
-4 6 -4 1 0 0 0 0 0 0
1 -4 6 -4 1 0 0 0 0 0
0 1 -4 6 -4 1 0 0 0 0
0 0 1 -4 6 -4 1 0 0 0
0 0 0 1 -4 6 -4 0 0 0
0 0 0 0 1 -4 6 -4 1 0
0 0 0 0 0 1 -4 6 -4 1
0 0 0 0 0 0 0 0 1 -2]
A = 10×10
-2 1 0 0 0 0 0 0 0 0 6 -4 1 0 0 0 0 0 0 0 -4 6 -4 1 0 0 0 0 0 0 1 -4 6 -4 1 0 0 0 0 0 0 1 -4 6 -4 1 0 0 0 0 0 0 1 -4 6 -4 1 0 0 0 0 0 0 1 -4 6 -4 0 0 0 0 0 0 0 1 -4 6 -4 1 0 0 0 0 0 0 1 -4 6 -4 1 0 0 0 0 0 0 0 0 1 -2
Many thanks
  3 件のコメント
Matt J
Matt J 2023 年 9 月 3 日
Has A(7,8) deliberately been made 0 instead of 1? If so, it is not clear what the pattern is supposed to be.
Scott Banks
Scott Banks 2023 年 9 月 3 日
No, Matt, it should be 1. Sorry for the typo

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

採用された回答

Matt J
Matt J 2023 年 9 月 3 日
[C,R]=deal(zeros(1,10));
C(1:4)=[-4 6 -4 1];
R(1:2)=[-4,1];
A=toeplitz(C,R);
A(1)=-2;
A(end,:)=flip(A(1,:))
A = 10×10
-2 1 0 0 0 0 0 0 0 0 6 -4 1 0 0 0 0 0 0 0 -4 6 -4 1 0 0 0 0 0 0 1 -4 6 -4 1 0 0 0 0 0 0 1 -4 6 -4 1 0 0 0 0 0 0 1 -4 6 -4 1 0 0 0 0 0 0 1 -4 6 -4 1 0 0 0 0 0 0 1 -4 6 -4 1 0 0 0 0 0 0 1 -4 6 -4 1 0 0 0 0 0 0 0 0 1 -2
  3 件のコメント
Walter Roberson
Walter Roberson 2023 年 9 月 3 日
Matt J
Matt J 2023 年 9 月 4 日
@Scott Banks for a full explanation, I suggest the documentation links provided by Walter.

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

その他の回答 (1 件)

Torsten
Torsten 2023 年 9 月 3 日
移動済み: Torsten 2023 年 9 月 3 日
Experiment with "spdiags":
If first and last row appear different from your matrix, you can change them subsequently.

カテゴリ

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