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

27 ビュー (過去 30 日間)
Isa Samad
Isa Samad 2020 年 11 月 7 日
コメント済み: Dominique Mutombo 2023 年 3 月 22 日
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 ]

回答 (1 件)

David Hill
David Hill 2020 年 11 月 7 日
a=size(M,1);
M(1:a+1:end)=[];
B=reshape(M,a-1,[]);

カテゴリ

Help Center および File ExchangeOperating on Diagonal Matrices についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by