さて、EEGスキャンからのデータファイル(バイナリファイル、data.eeg)があり、matlabでファイルを読み取ってデータのセクションをプロットするコードは次のようになります。
sr=400; % Sample Rate
Nyq_freq=sr/2; % Nyquist Frequency
fneeg=input('Filename (with path and extension) :', 's');
t=input('How many seconds in total of EEG ? : ');
ch=input('How many channels of EEG ? : ');
le=t*sr; % Length of the Recording
fid=fopen(fneeg, 'r', 'l'); % Open the file to read
EEG=fread(fid,[ch,le],'int16'); % Read Data -> EEG Matrix
fclose ('all');
plot(EEG(:,3))
これが私の「翻訳」の試みです
from numpy import *
from matplotlib.pylab import *
sample_rate = 400
Nyquist = sample_rate/2.
fneeg = raw_input("Filename (full path & extension): ")
t = int(raw_input("How many secs in total of EEG?: "))
ch = int(raw_input("How many channels of EEG?: "))
le = t*sample_rate
fid = open(fneeg, 'r')
EEG = fromfile(fneeg, int16)
ここで、物事が私を混乱させます。ドキュメントによると、matlab の fread は、fread(loaded_file, size, data_type) を介してバイナリ ファイルを読み取る方法です。Python での代替手段は、numpy の fromfile を使用し、組み込みの reshape 関数を使用して (このスレッドのMATLAB to Python freadによると) reshaping を使用することです。これがどのように機能するのか、またはmatlabメソッドに関連しているのかさえわかりませんか? 私の質問が混乱している場合は申し訳ありませんが、matlab はまだ私にとって非常に新しいものです。
編集: 見たい場合は、ここにあるファイルを見てください: https://www.dropbox.com/s/zzm6uvjfm9gpamk/data.eeg
Edit2: 生の入力に対する回答は t=10、ch=32 です。実際、考えてみると、なぜユーザー入力を求めているのかさえわかりません..