MATLAB: Generating sinusoidal wave in MATLAB but I get STRAIGHT line instead?

MATLABplot

I am trying to learn about the signals and wave for awhile now, It worked at the beggining but when I added few lines I get now curved line, I know it meant to be easy but not sure whats wrong .. I am using possion distribution !
here is my code..
function S = trial(lambdaMax,lambda,T)
t = 0;
I = 0;
S = [];
u = rand;
t = t - log(u)/lambdaMax;
while t < T
u = rand;
if (u <= lambda(t)/lambdaMax)
I = I+1;
S(I) = t;
end
u = rand;
t = t - log(u)/lambdaMax;
end
this is the script to run it,,
lambdaMax=50;
T=1;
lambda =@(x) lambdaMax * sin(x);
S = trial(lambdaMax,lambda,T);
figure
hold on
plot(S,lambda(S),'*')
xlabel('t')
ylabel ('sin(x)')

Best Answer

If you call your function "trial" with T=2*pi you get a full period of a sinusidal curve. With T=1 you get just the first part, which looks almost straight, but it has a small curvature.