Find the symmetric and skew-symmetric matrices by 2x2 blocks

3 visualizzazioni (ultimi 30 giorni)
Hello everyone,
I need to extract from 2n by 2n matrix the symetric and skew-symetric 2x2 blocks:
For example, for given A:
A=[
0,-1, 2,3;
1,0, 4,2;
-2,3, 0,-1;
4,-2, 1,0;
]
I want to get:
A_symetric= [
0,-1, 0,3;
1,0, 4,0;
0,3, 0,-1;
4,0, 1,0;
]
And
A_skew_symetric= [
0,0, 2,0;
0,0, 0,2;
-2,0, 0,0;
0,-2, 0,0;
]
  1 Commento
Matt J
Matt J il 10 Gen 2021
It is unclear why you consider A_symmetric to be blockwise symmetric. The 2x2 submatrix
0,3,
4,0,
is not symmetric.

Accedi per commentare.

Risposte (1)

Matt J
Matt J il 8 Gen 2021
Modificato: Matt J il 8 Gen 2021
A=[
0,-1, 2,3;
1,0, 4,2;
-2,3, 0,-1;
4,-2, 1,0;
];
n=length(A)/2;
mask = (-1).^( (1:2*n).' + (1:2*n) )==-1;
A_symetric=A.*(mask)
A_symetric = 4×4
0 -1 0 3 1 0 4 0 0 3 0 -1 4 0 1 0
A_skew_symmetric=A.*(~mask)
A_skew_symmetric = 4×4
0 0 2 0 0 0 0 2 -2 0 0 0 0 -2 0 0
  1 Commento
Ohad Shapira
Ohad Shapira il 9 Gen 2021
Modificato: Ohad Shapira il 9 Gen 2021
In a simple change this solution does not hold...
A=[
5,-1, 2,3;
1,5, 4,2;
-2,3, 5,-1;
4,-2, 1,5;
];
I get:
A_skew_symmetric =
5 0 2 0
0 5 0 2
-2 0 5 0
0 -2 0 5
The diagonal is always symetric

Accedi per commentare.

Categorie

Scopri di più su Specialized Power Systems in Help Center e File Exchange

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by