Matrix symmetric by 2x2 blocks
    4 ビュー (過去 30 日間)
  
       古いコメントを表示
    
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 件のコメント
  Ohad Shapira
 2021 年 1 月 9 日
				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
回答 (0 件)
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


