I want to generate a block toeplitz matrix in MATLAB, that is [A B C; B A B; C B A] , where A B and C are matrices (if they were scalars, the matlab function "toeplitz" would simply work). Does anyone have any simple way to generate such a matrix?

1 件のコメント

Matt J
Matt J 2019 年 3 月 13 日
leo cha's comment moved here:
I have problem, for example
if
for i = 1:200
Q(:, :, 1, i) = magic(2);
end
I would like to generate a block toeplitz matrix, where each block is Q(:, :, 1, i),

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

 採用された回答

Matt J
Matt J 2015 年 10 月 16 日
編集済み: Matt J 2015 年 10 月 16 日

5 投票

Q={A,B,C}; %blocks
n=length(Q);
result = cell2mat(Q(toeplitz(1:n)));

2 件のコメント

Ali Bulut ÜÇÜNCÜ
Ali Bulut ÜÇÜNCÜ 2015 年 10 月 17 日
編集済み: Ali Bulut ÜÇÜNCÜ 2015 年 10 月 17 日
What if we have A,B and C matrices in a single matrix? That is D=[A B C];
Royi Avital
Royi Avital 2019 年 1 月 19 日
編集済み: Royi Avital 2019 年 3 月 13 日
This could be extended to assymetric case.
For instance if we want the upper triangle to be zero we can do something like:
Q = {A, B, C, Z}; %blocks
n = length(Q);
vC = 1:n;
vR = 4 * ones(n, 1); vR(1) = vC(1);
result = cell2mat(Q(toeplitz(vC, vR)));
Where Z is zeros.

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

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangeCreating and Concatenating Matrices についてさらに検索

質問済み:

2015 年 10 月 16 日

編集済み:

2019 年 3 月 13 日

Community Treasure Hunt

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

Start Hunting!

Translated by