1. ホーム
  2. matlab

[解決済み] Matlab. 位置2のインデックスが配列の境界を越えています(1を超えてはいけません)。

2022-01-31 02:49:13

質問

あるデータセットに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))です。

これはどういうことでしょうか?ノートファイルには、各数字の間にスペースがある1列の数字が含まれています。

どのように解決するのですか?

もし、あなたの note.txt を持つファイルです。 シングル 列の数字がある場合、1列しかないのに2列目を呼び出すことになるため、インデックスのエラーが発生します。 reshape() . を確認することをお勧めします。 note.txt のファイル構成は問題ありません。もし、解決できない場合は、そのファイルを投稿に添付していただければ、確認できます。
ちなみに note.txt はこのようなものでなければなりません。
1 3
4 -5
6 2
...

乾杯