Daniel@0: function p = mkPolyFvec(x) Daniel@0: % MKPOLYFVEC Make feature vector by constructing 2nd order polynomial from input data Daniel@0: % function p = mkPolyFvec(x) Daniel@0: % Daniel@0: % x(:,i) for example i Daniel@0: % p(:,i) = [x(1,i) x(2,i) x(3,i) x(1,i)^2 x(2,i)^2 x(3,i)^2 .. Daniel@0: % x(1,i)*x(2,i) x(1,i)*x(3,i) x(2,i)*x(3,i)]' Daniel@0: % Daniel@0: % Example Daniel@0: % x = [4 5 6]' Daniel@0: % p = [4 5 6 16 25 36 20 24 30]' Daniel@0: Daniel@0: fvec = x; Daniel@0: fvecSq = x.*x; Daniel@0: [D N] = size(x); Daniel@0: fvecCross = zeros(D*(D-1)/2, N); Daniel@0: i = 1; Daniel@0: for d=1:D Daniel@0: for d2=d+1:D Daniel@0: fvecCross(i,:) = x(d,:) .* x(d2,:); Daniel@0: i = i + 1; Daniel@0: end Daniel@0: end Daniel@0: p = [fvec; fvecSq; fvecCross];