How to Delete Diagonal Elements from a Matrix and Reshape It?

10 visualizaciones (últimos 30 días)
Isa Samad
Isa Samad el 7 de Nov. de 2020
Comentada: Dominique Mutombo el 22 de Mzo. de 2023
Hi all,
I have a matrix M that I would like to remove diagonal entries from and reshape it. For reference, all diagonal elements that I want to remove are 1s and the dimensions of this matrix are N x N (where N can be as large as 90) so I will give an smaller example below:
For some of my data, however, the diagonal entries are occasionally NaN. The diagonal entires thus, will either be 1 or NaN.
Thanks
M = [ 1 4 2 3
5 1 2 3
3 3 NaN 3
4 5 3 1 ]
% Ideal New Matrix after
M2 = [ 5 4 2 3
3 3 2 3
4 5 3 3 ]

Respuestas (1)

David Hill
David Hill el 7 de Nov. de 2020
a=size(M,1);
M(1:a+1:end)=[];
B=reshape(M,a-1,[]);

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!

Translated by