Functor for the BLOCKDIAG projector.
Usage
blockdiag(shape, block_shapes): returns a BLOCKDIAG projector (functor), shape defines the size of the input matrix (e.g. [1, 10]), block_shapes defines the diagonal blocks shapes.
- Parameters
-
shape | vector of size 2, to define the size of the input matrix. |
block_shapes | a cell array in the defined as follows in order to get n diagonal blocks: {{b1_nrows, b1_ncols}, …, {bn_nrows, bn_ncols}}. The sum of bi_nrows must equal shape(1), likewise the sum of bi_ncols must equal shape(2). |
- Return values
-
Example
>> rng(42)
M =
0.3745 0.1560 0.0206 0.1834 0.6119
0.9507 0.0581 0.9699 0.3042 0.1395
0.7320 0.8662 0.8324 0.5248 0.2921
0.5987 0.6011 0.2123 0.4319 0.3664
0.1560 0.7081 0.1818 0.2912 0.4561
>> p =
blockdiag(size(M), {{1, 1}, {3, 3}, {1, 1}},
'normalized',
false);
>> p(M)
ans =
0.1948 0 0 0 0
0 0.0302 0.5045 0.1582 0
0 0.4505 0.4330 0.2729 0
0 0.3127 0.1104 0.2247 0
0 0 0 0 0.2372
>>