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