Cómo vectorizar la diagonalización por filas de una matriz.

Tengo una matriz n por m que quiero convertir en una matriz mn por m, con cada bloque m por m del resultado que contiene la diagonal de cada fila.

Por ejemplo, si la entrada es:

[1 2; 3 4; 5 6]

la salida debe ser:

[1 0; 0 2; 3 0; 0 4; 5 0; 0 6]

Por supuesto, no quiero ensamblar la matriz paso a paso con unfor lazo.
¿Hay una forma vectorizada y simple de lograr esto?

Respuestas a la pregunta(4)

Su respuesta a la pregunta