Problem 2813. Create a block diagonal matrix
A block diagonal matrix is a square matrix that can be written as
A = [a 0 0 0 0 b 0 0 0 0 c 0 0 0 0 ...]
where a, b, c etc. are all square matrices.
Construct A such that
A = [a 0 0 0 0 a 0 0 0 0 a 0 0 0 0 ...]
where a is allowed to be non-square or empty and occurs n times. n is always an integer greater than or equal to 0.
Examples:
a = [1 2 3], n = 3
gives
A = [1 2 3 0 0 0 0 0 0 0 0 0 1 2 3 0 0 0 0 0 0 0 0 0 1 2 3]
Solution Stats
Problem Comments
-
2 Comments
Masato Kanematsu
on 1 Oct 2020
If you know a function which is used to create a matrix, you can solve this problem easily !
Dyuman Joshi
on 27 Dec 2020
I thought you referred to the function blkdiag(), but I am surprised to know that it is not the case (for a one-liner)!
Solution Comments
Show commentsGroup

Matrix Manipulation I
- 16 Problems
- 98 Finishers
- Remove the air bubbles
- Remove NaN ?
- N-Dimensional Array Slice
- Back to basics 21 - Matrix replicating
- Back to basics 23 - Triangular matrix
- Make an awesome ramp for a tiny motorcycle stuntman
- Flip the main diagonal of a matrix
- surrounded matrix
- Some Assembly Required
- Set some matrix elements to zero
- Matrix with different incremental runs
- Removing rows from a matrix is easy - but what about inserting rows?
- Rotate input square matrix 90 degrees CCW without rot90
- Permute diagonal and antidiagonal
- Operate on matrices of unequal, yet similar, size
- Reverse the elements of an array
Problem Recent Solvers143
Problem Tags
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!