function [xx,C] = degexpandScale(x,deg,C) % [X,C] = degexpandScale(x,m,C) % Assumes columns of X are observations % produces matrix X such that x(i,:)=[1 x_1 x_1^2 ... x_1^m x_2 ... x_d^m] % If % Also normalizes each column of X (using C if given) % and also scales down each feature. [m,n] = size(x) ; xx = reshape( repmat(x',[1,1,deg]) .^ ... repmat(reshape(1:deg,[1,1,deg]),[n,m]) ... ,[n,m*deg]) ; % Scale using effective range or the given scaling xx = [ones(size(xx,1),1) xx]; if (nargin < 3) C=[max(abs(xx))]; end xx = xx / diag(C) ;