Array indices must be positive integers or logical values. - specific to EEG data
6 views (last 30 days)
Show older comments
Antoinette Burger
on 14 Feb 2023
Commented: Antoinette Burger
on 15 Feb 2023
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 Comments
Accepted Answer
Walter Roberson
on 14 Feb 2023
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 Comments
Walter Roberson
on 14 Feb 2023
You probably did not
clear fft
so it was probably still in your workspace.
See Also
Categories
Find more on EEG/MEG/ECoG in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!