Matrix symmetric by 2x2 blocks
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
Hello everyone,
I need to extract from 2n by 2n matrix the symetric and skew-symetric 2x2 blocks.
For example, for given A:
A=[
5,-1, 2,-3;
1,5, 4,2;
-2,3, 5,-1;
4,-2, 1,5;
]
I want to get:
A_symetric= [
5,-1, 0,0;
1,5, 4,0;
0,0, 5,-1;
4,0, 1,5;
]
And
A_skew_symetric= [
0,0, 2,3;
0,0, 0,2;
-2,-3, 0,0;
0,-2, 0,0;
]
2 Kommentare
Ohad Shapira
am 9 Jan. 2021
function [A_sym,A_anti] = sym_by_blocks(A)
syms w t
n=length(A);
A_sym=sym(zeros(length(A)));
A_anti=sym(zeros(length(A)));
for row=1:2:n
for col=1:2:n
if row==col
A_sym(row:row+1,col:col+1)=A(row:row+1,col:col+1);
else
A_sym(row:row+1,col:col+1)=0.5*(A(row:row+1,col:col+1)+A(col:col+1,row:row+1));
A_anti(row:row+1,col:col+1)=0.5*(A(row:row+1,col:col+1)-A(col:col+1,row:row+1));
end
end
end
end
Antworten (0)
Siehe auch
Kategorien
Mehr zu Array and Matrix Mathematics 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!