Azzera filtri
Azzera filtri

Algorithm for an elimination matrix

7 visualizzazioni (ultimi 30 giorni)
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
Luciano Campos
Luciano Campos il 18 Mar 2016
Thanks James! It works perfectly!
really appreciate your help.
best,

Accedi per commentare.

Più risposte (0)

Community Treasure Hunt

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

Start Hunting!

Translated by