I am getting this error and I don't know why.
Index in position 1 is invalid. Array indices must be positive integers or logical values.
This is the line I am getting it for:
plot(EEG.times,squeeze(EEG.data(channel_index,:,:)),'y')
I attached the data set that can be loaded to see what is going on.
I tried to attach the data file, but it is too large; even when compressed. The data file is sampleEEGdata.mat and can be found in this code downloaded from this link http://mikexcohen.com/book/AnalyzingNeuralTimeSeriesData_MatlabCode.zip

 채택된 답변

Star Strider
Star Strider 2021년 6월 16일

0 개 추천

In MATLAB, indices must be integers greater than 0.
This illustrates a way to get some of the data and plot it —
Uz = unzip('http://mikexcohen.com/book/AnalyzingNeuralTimeSeriesData_MatlabCode.zip')
Uz = 1×57 cell array
{'code/accumbens_eeg.mat'} {'code/amsterdam.bmp'} {'code/armorf.m'} {'code/chapter02.m'} {'code/chapter04_datafile.txt'} {'code/chapter04_excel_data.xls'} {'code/chapter04_headache_data.txt'} {'code/chapter04a.m'} {'code/chapter04b.m'} {'code/chapter04c.m'} {'code/chapter05.m'} {'code/chapter06.m'} {'code/chapter09.m'} {'code/chapter10.m'} {'code/chapter11.m'} {'code/chapter12.m'} {'code/chapter13.m'} {'code/chapter14.m'} {'code/chapter15.m'} {'code/chapter16.m'} {'code/chapter17.m'} {'code/chapter18.m'} {'code/chapter19.m'} {'code/chapter20.m'} {'code/chapter22.m'} {'code/chapter23.m'} {'code/chapter25.m'} {'code/chapter26.m'} {'code/chapter27.m'} {'code/chapter28.m'} {'code/chapter29.m'} {'code/chapter30.m'} {'code/chapter31.m'} {'code/chapter33.m'} {'code/chapter34.m'} {'code/cover_art.m'} {'code/data_output_SPSS_format.txt'} {'code/data_written_from_matlab.txt'} {'code/data2psiX.m'} {'code/emdx.m'} {'code/entropyx.m'} {'code/erpviewerx.fig'} {'code/erpviewerx.m'} {'code/fdr.m'} {'code/figure34_3_data.mat'} {'code/frequency_sliding_and_median_filter.m'} {'code/interpolate_nola.m'} {'code/interpolate_perrinX.m'} {'code/laplacian_nola.m'} {'code/laplacian_perrinX.m'} {'code/mutualinformationx.m'} {'code/my_matlab_variables.mat'} {'code/pathlength.m'} {'code/sampleEEGdata.mat'} {'code/solutions2exercises.pdf'} {'code/tfviewerx.fig'} {'code/tfviewerx.m'}
% n = strcmp(Uz{:},'sampleEEGdata')
D1 = load(Uz{54});
EEG = D1.EEG
EEG = struct with fields:
setname: 'EEG sample dataset' filename: '' filepath: '' subject: '' group: '' condition: '' session: [] comments: [4×63 char] nbchan: 64 trials: 99 pnts: 640 srate: 256 xmin: -1 xmax: 1.4961 times: [1×640 double] data: [64×640×99 single] icaact: [] icawinv: [] icasphere: [] icaweights: [] icachansind: [] chanlocs: [1×64 struct] urchanlocs: [] chaninfo: [1×1 struct] ref: [-67 -68] event: [1×311 struct] urevent: [1×3009 struct] eventdescription: {'' '' '' '' ''} epoch: [1×99 struct] epochdescription: {} reject: [1×1 struct] stats: [1×1 struct] specdata: [] specicaact: [] splinefile: '' icasplinefile: [] dipfit: [] history: '↵pop_eegplot( EEG, 1, 1, 1);↵EEG.setname='TheNewWave';↵EEG = pop_rejepoch( EEG, find(EEG.reject.rejglobal), 0);↵EEG = eeg_checkset( EEG );' saved: 'no' etc: [1×1 struct] spedata: []
times = EEG.times;
data = EEG.data;
chans = EEG.chanlocs;
channel_index = 1:4;
figure
for k = 1:numel(channel_index)
subplot(2,2,k)
plot(EEG.times,squeeze(EEG.data(channel_index(k),:,:)),'b')
title(sprintf('Channel %s',EEG.chanlocs(k).labels))
xlabel('Time')
ylabel('Amplitude')
grid
end
sgtitle('First Four Channels')
.

댓글 수: 2

Ryan Griffith
Ryan Griffith 2021년 6월 16일
Thanks!
Star Strider
Star Strider 2021년 6월 16일
As always, my pleasure!

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Matrix Indexing에 대해 자세히 알아보기

질문:

2021년 6월 16일

댓글:

2021년 6월 16일

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by