how to delete diagonal values in a matrix?
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
bilgesu ak
am 18 Jan. 2016
Beantwortet: shubhashree bal
am 14 Okt. 2021
Hi everyone;
For example I got an matrix that all diagonal values are zero and I want to remove them.
A=[0 5 4 3
3 0 5 1
4 2 0 2
3 8 6 0]
I want to get a new matrix like that:
Anew=[ 5 4 3
3 5 1
4 2 2
3 8 6]
Is there any suggestion?
Regards...
3 Kommentare
Guillaume
am 18 Jan. 2016
Notwithstanding the fact that this will flatten A which is not what the OP is looking for, the find is completely unnecessary here.
A(A == 0) = [];
will produce the same result.
Akzeptierte Antwort
Guillaume
am 18 Jan. 2016
One possible way:
Anew = reshape(nonzeros(A'), size(A, 2)-1, [])'
5 Kommentare
Weitere Antworten (1)
shubhashree bal
am 14 Okt. 2021
Try this:
A=[0 5 4 3
3 0 5 1
4 2 0 2
3 8 6 0];
u=1;
value =size(A,1)+1;
row_value_end=size(A,1)-1;
col_value_end=size(A,1);
for k=1:size(A,1)
u(k+1)=u(k)+value;
end
g= A.';
g(u(1:end-1))=[];
y= reshape(g,[row_value_end,col_value_end]);
b=y.';
0 Kommentare
Siehe auch
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!