Add a diagonal of zeros to a matrix in MATLAB
24 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Amal FH
am 25 Dez. 2020
Kommentiert: Amal FH
am 25 Dez. 2020
Let
M1 = [ 1 2 3 4
2 5 4 2
3 4 5 1
4 2 1 2 ]
a diagonal matrix.
I want to add a diagonal of zeros where
M1'= [ 0 1 2 3 4
1 0 5 4 2
2 5 0 5 1
3 4 5 0 2
4 2 1 2 0 ]
So I keep the original matrix and just add the diagonal of zeros. So size(M1) = (4x4) ans size (M1')=(5x5)
I tried "
M1' = [tril(M1,-1) zeros(N, 1)] + [zeros(N,1) triu(M1)];
" But this won't work because it changes the diagonal of the original matrix.
Akzeptierte Antwort
Asad (Mehrzad) Khoddam
am 25 Dez. 2020
You can use a loop like this:
M1 = [ 1 2 3 4
2 5 4 2
3 4 5 1
4 2 1 2 ];
N=size(M1,1);
M2=zeros(N+1,N+1);
for i=0:N-1
M2 = M2 + diag(diag(M1,-i),-i-1)+ diag(diag(M1,i),i+1);
end
M2
Weitere Antworten (0)
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!