how to create block circulant matrix?

7 Ansichten (letzte 30 Tage)
sai prudhvi
sai prudhvi am 14 Apr. 2020
Kommentiert: Akira Agata am 15 Apr. 2020
i need to create mn*mn block circulant matrix ie m blocks of n*n matrices. please help me

Akzeptierte Antwort

Akira Agata
Akira Agata am 14 Apr. 2020
How about the following?
% For simple example
n = 3;
m = 2;
% Create n-by-n circulant matrix
B_block = gallery('circul',1:n)';
% Create nm-by-nm block circulant matrix
B_all = repmat(B_block,m);
  2 Kommentare
sai prudhvi
sai prudhvi am 14 Apr. 2020
i accept but if matrix elements is complex numbers then how to create the matrix.
Akira Agata
Akira Agata am 15 Apr. 2020
I believe the same approach should work, like:
% For simple example
n = 3;
m = 2;
% Create n-by-n complex circulant matrix
Re = gallery('circul',1:n)';
Im = gallery('circul',1:n)';
B_block = Re + 1i*Im;
% Create nm-by-nm block circulant matrix
B_all = repmat(B_block,m);

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Modeling finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by