function [profpoints, likeprofile]=kalman_likeprofile(a, y, V1, param)
%This function does a likelihood profile of param, maximizing over the other parameters
%a is a vector of the initial values for the parameters
%param is the parameter that is being fixed
%This uses fmincon (minimization with constraints) to hold param constant while the others are maximized
%Don't display anything during the searching
myopt=optimset('Display','off');
warning('off');
%Set up the constraint matrix to hold param constant
%cf. matlab help page for fmincon function
Aeq = zeros(1, length(a));
Aeq(param) = 1;
scal = .05;
step = .005; %fraction of scal
%profile over range of scale:(scale+1)
if(param == 1) profpoints = (a(1)-scal):step:(a(1)+scal);
else profpoints = -8:.25:0;
end
%profpoints = a(param);
likeprofile = zeros(1,length(profpoints));
for( Beq = profpoints )
%fmincon(FUN,XO,A,B,Aeq,Beq,LB,UB,NONLCON, OPTIONS, P1, P2...)
a(param)=Beq;
aprof=fmincon('kalman_loglik',a, [], [], Aeq, Beq, [], [], [], myopt,y, V1, 0 );
likeprofile(find(Beq==profpoints)) = kalman_loglik( aprof,y,V1, 0);
end