How can i use toeplitz in cell arrays?

2 ビュー (過去 30 日間)
Gn Gnk
Gn Gnk 2020 年 12 月 8 日
回答済み: Roee Ronkin 2023 年 4 月 19 日
Hello ,
i have 1x38 cell matrix and every cell contains a 38x38 matrix .I want to perform toeplitz() on this cell array but matlab cannot do that .
For example if my cell array is G then i want to create this toeplitz matrix :
G_toeplitz = [G{1} 0 0 0
G{2} G{1} 0 0
G{3} G{2} G{1} 0
G{4} G{3} G{2} G{1} .......
.
.
.
]
Is there any way to do this?

回答 (2 件)

Stephan
Stephan 2020 年 12 月 8 日
編集済み: Stephan 2020 年 12 月 8 日
G = cell(1,2);
G{1} = ones(2);
G{2} = 2*ones(2);
c = [G{1} G{2}];
r = [G{1} zeros(2)];
result = toeplitz(c,r)
results in:
result =
1 1 1 1 0 0 0 0
1 1 1 1 1 0 0 0
1 1 1 1 1 1 0 0
1 1 1 1 1 1 1 0
2 1 1 1 1 1 1 1
2 2 1 1 1 1 1 1
2 2 2 1 1 1 1 1
2 2 2 2 1 1 1 1
  2 件のコメント
Gn Gnk
Gn Gnk 2020 年 12 月 9 日
Its cell contains 38x38 matrix . So its a 2D toeplitz. Not 1D.
Stephan
Stephan 2020 年 12 月 9 日
編集済み: Stephan 2020 年 12 月 9 日
In my example I used 2x2 matrices to keep it simple and short. Don't you think this can be extended to 38x38?
G{1}
G{2}

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


Roee Ronkin
Roee Ronkin 2023 年 4 月 19 日
cell2mat(G(toeplitz(1:numel(G))))

カテゴリ

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

Community Treasure Hunt

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

Start Hunting!

Translated by