Last change
on this file since 177 was
37,
checked in by (none), 15 years ago
|
Added original make3d
|
-
Property svn:executable set to
*
|
File size:
584 bytes
|
Line | |
---|
1 | % d = vgg_duplic_matrix(n) Duplication matrix.
|
---|
2 | %
|
---|
3 | % Classical matrix re-arrangement operator, see book Magnus-Neudecker.
|
---|
4 | %
|
---|
5 | % Useful for rearranging equations with symmetric matrices.
|
---|
6 | % For square symmetric X, it is
|
---|
7 | %
|
---|
8 | % vgg_duplic_matrix(n)*vgg_vech(X) = vgg_vec(X)
|
---|
9 | %
|
---|
10 | % See also vgg_matrix_test, vgg_vech_swap.
|
---|
11 |
|
---|
12 | % Added by Tom Werner, originaly from T.Minka.
|
---|
13 |
|
---|
14 |
|
---|
15 | function d = vgg_duplic_matrix(n)
|
---|
16 |
|
---|
17 | a = tril(ones(n));
|
---|
18 | i = find(a);
|
---|
19 | a(i) = 1:length(i);
|
---|
20 | a = a + tril(a,-1)';
|
---|
21 | j = a(:);
|
---|
22 |
|
---|
23 | m = n*(n+1)/2;
|
---|
24 | d = zeros(n*n,m);
|
---|
25 | for r = 1:size(d,1)
|
---|
26 | d(r, j(r)) = 1;
|
---|
27 | end
|
---|
Note: See
TracBrowser
for help on using the repository browser.