Algorithm for an elimination matrix

Hi everybody, Can anybody help me to design a Matlab code function that creates an elimination matrix L of size (.5m(m+1),m^2) such that, for a (m,m) square matrix A:
vech(A)=L vec(A)
where the vech and vec operators are such that, for example, if:
Thanks for your help,
best,

 Risposta accettata

James Tursa
James Tursa il 18 Mar 2016
Modificato: James Tursa il 18 Mar 2016
m = size(A,1); % Size of A
T = tril(ones(m)); % Lower triangle of 1's
f = find(T(:)); % Get linear indexes of 1's
k = m*(m+1)/2; % Row size of L
m2 = m*m; % Colunm size of L
L = zeros(m2,k); % Start with L'
x = f + m2*(0:k-1)'; % Linear indexes of the 1's within L'
L(x) = 1; % Put the 1's in place
L = L'; % Now transpose to actual L

1 Commento

Thanks James! It works perfectly!
really appreciate your help.
best,

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Mathematics in Centro assistenza e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by