首页 > 解决方案 > MATLAB。位置 2 的索引超出数组边界(不得超过 1)

问题描述

我正在尝试将 FFT 应用于一组数据。我正在使用这个脚本

filepath = 'C:\Users\notmyname\Desktop\note.txt';
data = importdata(filepath);
dt=data(2,1)-data(1,1);
Fs=1/dt; 
L=length(data(:,2));
data_fft_full=abs(fft(data(:,2))/L); 
data_fft=data_fft_full(1:L/2+1); 
f=Fs*(0:(L/2))/L;  
figure
plot(f,data_fft)
xlabel('f (Hz)')

我收到错误“位置 2 中的索引超出数组边界(不得超过 1)。

Untitled2 中的错误(第 5 行)L=length(data(:,2));

这是什么意思?注释文件包含一列数字,每个数字之间有一个空格,

标签: matlabfft

解决方案


如果你note.txt的文件只有一数字,它会给你索引错误,因为当你只有一列时你会调用第二列,在这种情况下你可以做的是reshape(). 我建议您检查note.txt文件结构,因为代码很好。如果您无法解决,请将其附加到帖子中,我们可以检查它。
顺便说一句,note.txt必须是这样的:
1 3
4 -5
6 2
...

干杯,


推荐阅读