VECTOR_TO_SKEW_SYMMETRIC Transforms vector v into skew symmetric matrix M. M = vector_to_symmetric(v, d) Transforms the vector v into the skew symmetric d x d matrix M by interpreting v as the stacked columns of the lower triangular. It is expected that 0.5*d*(d+1) == length(v), otherwise an error will occur. created by Benedikt Rudolph DATE: 20-Aug-2012
0001 function M = vector_to_skew_symmetric(v, d) 0002 %VECTOR_TO_SKEW_SYMMETRIC Transforms vector v into skew symmetric matrix M. 0003 % 0004 % M = vector_to_symmetric(v, d) Transforms the vector v into the skew symmetric 0005 % d x d matrix M by interpreting v as the stacked columns of the lower triangular. 0006 % It is expected that 0.5*d*(d+1) == length(v), otherwise an error will occur. 0007 % 0008 % created by Benedikt Rudolph 0009 % DATE: 20-Aug-2012 0010 0011 M = zeros(d); % init M 0012 M(logical(tril(ones(d),-1))) = v; % set lower triangular to v 0013 M = M - tril(M,-1)'; % subtract upper triangular symmetrically 0014 M(logical(eye(d))) = 0; % set diagonal elements to zero 0015 end