MATLAB @ symbol for fminunc / fmincg function
@(something) is used to call a function in MATLAB or octave.

Suppose you create a function within a code. And you set a keyword for that function.
we have a sum(x,y) function which takes two inputs and returns the sum.
Now you fix the value of y, say y = 3; And you want to change the value of x every time. You can design the inline function by following:

y=3
temp = @(p) sum(p,y);

ret = temp(4);  % What this will do is it will add 4 with 3 and return the answer.


This is used where we have to call a function multiple times and we don't want to write the arguments every time. It's a shortcut method.

In your case 

fmincg (@(t)(lrCostFunction(t, X, (y == c), lambda)),initial_theta, options);


the value of t will be replaced every time with initial_theta. That is how the fmincg or fminunc functions work.