2 views (last 30 days)

Show older comments

From a Hermititan (complex skew symmetric) matrix of order N (Asssume N=15) a column vector is created such that all the diagonal elements are placed first and then the ordered pair of real and imaginary parts of upper triangle matrix are placed next. Since it is hermitian matrix the upper and lower triangle elements have same set of real and imaginary elements.

For example for N=15x15 matrix the vector looks like this

[D1, D2, D3,...........,D15, R11, I11,R12, I12,.... ,R15, I15] in total 225 elements column vector.

How to construct back the matrix given this vector?

Jan
on 24 Jul 2021

Edited: Jan
on 24 Jul 2021

A = rand(4) + 1i * rand(4);

A = A + A'; % Hermitian

% Convert to vector:

D = diag(A).';

L = triu(A, 1);

Lf = L(L ~= 0).';

Lv = [real(Lf); imag(Lf)];

VU = [D, Lv(:).'];

% And backwards:

n = sqrt(numel(VU));

L = triu(ones(n), 1);

L(L==1) = VU(n+1:2:n*n) + 1i * VU(n+2:2:n*n);

% Or: L(L==1) = [1, 1i] * reshape(VU(n+1:n*n), 2, [])

B = diag(VU(1:n)) + L + L';

isequal(A, B)

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

Start Hunting!