Azzera filtri
Azzera filtri

Info

Questa domanda è chiusa. Riaprila per modificarla o per rispondere.

How to fix: "Index exceeds matrix dimensions"?

2 visualizzazioni (ultimi 30 giorni)
Artur Pater
Artur Pater il 28 Nov 2018
Chiuso: MATLAB Answer Bot il 20 Ago 2021
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?

Risposte (1)

Cris LaPierre
Cris LaPierre il 28 Nov 2018
Modificato: Cris LaPierre il 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.

Questa domanda è chiusa.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by