could you please convert it into a loop

very simple logic but im not getting
n=4
K = [ 1, 2; 3, 4]
K1=zeros(n+1);
K1([1 2],[1 2])=K
K2=zeros(n+1);
K2([2 3],[2 3])=K
K3=zeros(n+1);
K3([3 4],[3 4])=K
K4=zeros(n+1);
K4([4 5],[4 5])=K
L=K1+K2+K3+K4;
how to convert this into loop where we can add more Kn matrices

2 件のコメント

Stephen23
Stephen23 2019 年 3 月 9 日
編集済み: Stephen23 2019 年 3 月 9 日
"how to convert this into loop where we can add more Kn matrices"
Do NOT do that. Dynamically accessing variable names is one way that beginners force themselves into writing slow, complex, buggy code that is hard to debug. Read this to know why:
Indexing is neat, simple, and very efficient. You should use indexing, e.g. with a cell array or an ND numeric array.
page vnky
page vnky 2019 年 3 月 9 日
thanks stephen!! that gave me lot and i got it.

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

 採用された回答

Guillaume
Guillaume 2019 年 3 月 10 日

0 投票

In addition to what Stephen said, it's very easy to create your L for any n, without even a loop:
K = [1 2; 3 4];
n = 5;
L = toeplitz([trace(K), K(2, 1), zeros(1, n-2)], [trace(K), K(1, 2), zeros(1, n-2)]);
L([1, end]) = K([1, end])

1 件のコメント

page vnky
page vnky 2019 年 3 月 10 日
wow guillaume, i got one step answer with yours... thanks a lot

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

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangeLoops and Conditional Statements についてさらに検索

質問済み:

2019 年 3 月 9 日

コメント済み:

2019 年 3 月 10 日

Community Treasure Hunt

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

Start Hunting!

Translated by