why am I getting "Array indices must be positive integers or logical values"
Show older comments
clear
syms t;
Fs=5;
T=1/Fs;
L=1500;
t=(0:L-1)*T;
Yo=4+4.005*(sin(t)+sin(3*t)/3+sin(5*t)/5+sin(7*t)/7);
y = fft(Yo);
f=2*pi*Fs(0:(L/2))/L;
p2 = abs(y/L);
p1=p2(1:L/2+1);
p1(2:end-1) = 2*p1(2:end-1);
%f=2*pi*Fs(0:(L/2))/L;
plot(f,p1)
title ('Amplitude Spectrum')
xlabel('time')
ylabel('y(t)')
1 Comment
Cris LaPierre
on 12 Feb 2022
syms t is doing nothing here. You can remove it.
Accepted Answer
More Answers (2)
Jan
on 11 Feb 2022
The variable Fs has the value 5. Then the expression:
Fs(0:(L/2))
is treated as indices. 0 is not a valid index. In addition Fs is a scalar and indexing cannot work apart from the index 1.
Maybe you mean:
Fs * (0:(L/2))
Image Analyst
on 12 Feb 2022
0 votes
Full explanation in the FAQ:
Categories
Find more on Dates and Time in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!