FFT in MATLAB help

Homework Statement

Find the Fourier Transform of a unity amplitude rectangular pulse of width 2T, where T=[ims]. Use MATLAB to plot the magnitude response of this signal's FT.

The Attempt at a Solution

I got something that LOOKS right, but the first zero-crossing SHOULD be +-pi/T which equals 3.14e3, in this case (since I'm taking the Fourier Transform of an aperiodic rectangular pulse). However, when plotted, MATLAB is telling me it's about 2000. On top of that, the amplitude should be 2*T which, in this case, is 0.002 but MATLAB says it's 3.... I have no clue what is going wrong with the code. Any help would be GREATLY appreciated.

Code:
clear all
close all

% Part 1

%Following generates pulse of width T
T = 1e-3; %half-width of rectangular pulse
dt = 1e-3;
ts = [-T:dt:T];
pulse = rectpuls(ts);

%Generate fft of pulse
N = 1024; %Number of samples
y=fftshift(fft(pulse,N));
ws = 2*pi/T;
waxis = [-ws/2:ws/N:ws/2-(ws/N)];
plot(waxis,abs(y))
title(['FT of Rectangular Pulse of width ',num2str(2.*T./1e-3),'ms']);