How to add a diagonal to a matrix?
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
I have the following matrix M=[1 2 3; 4 5 6 ] and I would like to transform it to the follwowing matrix M=[0 1 2; 3 0 4; 5 6 0].
How to do it? It is how to add a zero diagonal to a predefined matrix?
0 comentarios
Respuestas (1)
Matt J
el 4 de Sept. de 2020
Editada: Matt J
el 4 de Sept. de 2020
One way,
[J,I]=ndgrid(1:size(M,1)+1);
idx=(I~=J);
M = accumarray([I(idx),J(idx)],reshape(M.',[],1))
M =
0 1 2
3 0 4
5 6 0
2 comentarios
Matt J
el 4 de Sept. de 2020
You're quite welcome, but please Accept-click the answer if it resolves your question.
Ver también
Categorías
Más información sobre Operating on Diagonal Matrices en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!