about summary refs log tree commit diff
path: root/sourcecodes/bnt-master/KPMstats/mkPolyFvec.m
diff options
context:
space:
mode:
Diffstat (limited to 'sourcecodes/bnt-master/KPMstats/mkPolyFvec.m')
-rw-r--r--sourcecodes/bnt-master/KPMstats/mkPolyFvec.m24
1 files changed, 24 insertions, 0 deletions
diff --git a/sourcecodes/bnt-master/KPMstats/mkPolyFvec.m b/sourcecodes/bnt-master/KPMstats/mkPolyFvec.m
new file mode 100644
index 00000000..0ddbb259
--- /dev/null
+++ b/sourcecodes/bnt-master/KPMstats/mkPolyFvec.m
@@ -0,0 +1,24 @@
+function p = mkPolyFvec(x)
+% MKPOLYFVEC Make feature vector by constructing 2nd order polynomial from input data
+% function p = mkPolyFvec(x)
+%
+% x(:,i) for example i
+% p(:,i) = [x(1,i) x(2,i) x(3,i) x(1,i)^2 x(2,i)^2 x(3,i)^2 ..
+%           x(1,i)*x(2,i) x(1,i)*x(3,i) x(2,i)*x(3,i)]'
+%
+% Example
+% x = [4 5 6]'
+% p = [4 5 6  16 25 36  20 24 30]'
+
+fvec = x;
+fvecSq = x.*x;
+[D N] = size(x);
+fvecCross = zeros(D*(D-1)/2, N);
+i = 1;
+for d=1:D
+  for d2=d+1:D
+    fvecCross(i,:) = x(d,:) .* x(d2,:);
+    i = i + 1;
+  end
+end
+p = [fvec; fvecSq; fvecCross];