how to create block circulant matrix?

i need to create mn*mn block circulant matrix ie m blocks of n*n matrices. please help me

 Accepted Answer

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

i accept but if matrix elements is complex numbers then how to create the matrix.
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!