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

5 Ansichten (letzte 30 Tage)
Isa Samad
Isa Samad am 7 Nov. 2020
Kommentiert: Dominique Mutombo am 22 Mär. 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 ]

Antworten (1)

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

Kategorien

Mehr zu Operating on Diagonal Matrices finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by