how to create block circulant matrix?

33 views (last 30 days)
i need to create mn*mn block circulant matrix ie m blocks of n*n matrices. please help me

Accepted Answer

Akira Agata
Akira Agata on 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 Comments
sai prudhvi
sai prudhvi on 14 Apr 2020
i accept but if matrix elements is complex numbers then how to create the matrix.
Akira Agata
Akira Agata on 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);

Sign in to comment.

More Answers (0)

Categories

Find more on Modeling in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!