MATLAB: Any idea why i’m getting this error

signal processing

why i'm getting Subscript indices must either be real positive integers or logicals.
m = zeros(4,500);
n_trig = 3;
n = (0:Harm).';
f0 = 1/T;
fs = samples / T;
n = (0:n_trig).';
wnt = 2*pi*f0*n*t;
ft = exp((2 - t) / 4);
s1 = (1/T) * sum(ft) / fs;
s2 = (2/T) * ft * cos(2*pi*f0*n*t).' / fs;
s3 = (2/T) * ft * cos(2*pi*f0*n*t).' / fs;
s = s1 + s2*cos(wnt) + s3*sin(wnt);
for n = 0:3
m(n,:) = s(n);
end
thanks

Best Answer

You have
for n = 0:3
m(n,:) = s(n);
end
When n = 0 (the first value for n), you are trying to do m(0,:) = s(0) . That is not valid, as MATLAB indices start at 1.
By the way, why do you have the line
n = (0:Harm).';
when you overwrite n three lines later?