block diagonal matrix in the opposite diagonal

7 visualizaciones (últimos 30 días)
Romio
Romio el 18 de Sept. de 2022
Comentada: Romio el 18 de Sept. de 2022
Is there any function/way to construct a matrix with block matrcies in the opposite diagonal. I know of blkdiag( ) but it gives a matrix with blocks in the main diagonal

Respuesta aceptada

Paul
Paul el 18 de Sept. de 2022
Here's one option
a = rand(2);
b = rand(2,3);
A = blkdiag(a,b)
A = 4×5
0.0976 0.7033 0 0 0 0.6779 0.8610 0 0 0 0 0 0.4852 0.7807 0.6937 0 0 0.5431 0.4091 0.2433
D = oppblkdiag(a,b)
D = 4×5
0 0 0 0.0976 0.7033 0 0 0 0.6779 0.8610 0.4852 0.7807 0.6937 0 0 0.5431 0.4091 0.2433 0 0
function D = oppblkdiag(varargin)
c = cellfun(@(x) fliplr(x),varargin,'UniformOutput',false);
D = fliplr(blkdiag(c{:}));
end
  2 comentarios
John D'Errico
John D'Errico el 18 de Sept. de 2022
Exactly.
Romio
Romio el 18 de Sept. de 2022
Thanks. I think it should be implemeted as built in function in matlab

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Operating on Diagonal Matrices en Help Center y File Exchange.

Etiquetas

Productos


Versión

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by