Info
This question is closed. Reopen it to edit or answer.
How to fix: "Index exceeds matrix dimensions"?
2 views (last 30 days)
Show older comments
I want to use fft on first cycle of sine wave to get all samples from it.
fs=1000;
t = 0:1/fs:0.2-1/fs;
x = 5*sin(2*pi*50*t);
plot(t,x)
To do it I used loop:
n = 20;
for i=n:length(x)
y = fft(x(i:i+n-1));
end
where n is number of samples/cycle (fs=1000, freq=50 Hz).
But MATLAB shows me an error "Index exceeds matrix dimensions" in line with y = fft(...).
How to fix it?
0 Comments
Answers (1)
Cris LaPierre
on 28 Nov 2018
Edited: Cris LaPierre
on 28 Nov 2018
It means you are indexing into x with a number that exceeds the size of x.
Checking the size of x, it is 1x200. Check the value of "i" when your code stops running. I get 182. Your index is
x(i:i+n-1)
or, when it errors out,
x(182:182+20-1)
x(185:201)
x(201) does not exist. Hence the error message.
the fix is to adjust your indexing so you doen't exceed 200.
0 Comments
This question is closed.
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!