フィルターのクリア

How to index with a changing index

1 回表示 (過去 30 日間)
xiaojuezi
xiaojuezi 2021 年 12 月 8 日
回答済み: DGM 2021 年 12 月 8 日
Hi, I would like to construct a matrix L of size nxn that looks like below:
L = [a,b,c,0,0,0,0,...
0,a,b,c,0,0,0,...
0,0,a,b,c,0,0,...
0,0,0,a,b,c,0,...
...
0,0,0,0,...a,b,c];
I'm trying to do this without the for loop.
i = 2:n-1;
L(:,i-1:i+1) = repmat([a,b,c],n,1);
However, this doesn't give what I want, and I was warned by the complier that i is a non-scalar operator.
Is there a way to fix this?
Thank you very much!

回答 (1 件)

DGM
DGM 2021 年 12 月 8 日
You can try something like this:
a = 1;
b = 2;
c = 3;
A = toeplitz([a 0 0 0 0 0 0],[a b c 0 0 0 0]);
A = A(1:end-2,:)
A = 5×7
1 2 3 0 0 0 0 0 1 2 3 0 0 0 0 0 1 2 3 0 0 0 0 0 1 2 3 0 0 0 0 0 1 2 3

カテゴリ

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

製品


リリース

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by