Array indices must be positive integers or logical values. - specific to EEG data
조회 수: 5 (최근 30일)
이전 댓글 표시
I am trying to create spectrograms for specific brain areas, each brain area contains several electrodes (SEEG). This specific area (left_cingulate) contains 7 electrodes, extracted as arrays. Some of the values in the arrays are negative values, which is normal for EEG data. The error comes with the y=fft(data); line in the code. Error: Array indices must be positive integers or logical values. I have the signal processing toolbox installed.
clc
load data_left_cing.mat;% loading data
dt=0.0256
Fs=512;%sampling frequency
T = 1/Fs;% sampling period
TimeResolution=0.0256;
fft = 2^nextpow2(57001);
% [N]=size(data);%obtain size of data
t = (0:T-1)/Fs;%generates time vector
y=fft(data);% fft of data -------------------------------------->>> error
freq=(1:N)*Fs/N;%frequency vector
%SPECTROGRAM of channels
[S1,F,T] = spectrogram(data(:,7),window=hann,noverlap=50,Fs=512);
S1=abs(S1);
h3=figure;
mesh(T,F,S1);
xlabel('Time (s)','FontSize',14);
ylabel('Frequency (Hz)','FontSize',14);
zlabel('S1','FontSize',14);
h4=figure;
contour(T,F,S1);
xlabel('Time (sec)');
ylabel('Frequency (Hz)');
title('left cingulate');
Any help would be greatly appreciated, I'm not sure where I'm going wrong.
댓글 수: 0
채택된 답변
Walter Roberson
2023년 2월 14일
fft = 2^nextpow2(57001);
After that line is executed, fft in your workspace is now the name of a variable.
y=fft(data);% fft of data -------------------------------------->>> error
and so that beomes a request to index the variable, rather than to call the fft routine.
Moral of the story: avoid naming variables the same as MATLAB routines that in common use. Especially avoid naming a variable sum -- people get caught with that one a lot.
댓글 수: 5
Walter Roberson
2023년 2월 14일
You probably did not
clear fft
so it was probably still in your workspace.
참고 항목
카테고리
Help Center 및 File Exchange에서 EEG/MEG/ECoG에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!