index channel location error

3 visualizaciones (últimos 30 días)
Carmen Sergiou
Carmen Sergiou el 2 de Jul. de 2021
Comentada: Carmen Sergiou el 7 de Jul. de 2021
chan1idx = find(strcmpi(channel1,{EEG.chanlocs.labels}));
chan2idx = find(strcmpi(channel2,{EEG.chanlocs.labels}));
Dear all, I am trying to direct the index of channel 1 to the corresponding value in my EEG.chanlocs file.
But I keep on getting this error:
Intermediate dot '.' indexing produced a comma-separated list with 20 values, but
it must produce a single value to perform subsequent indexing operations.
What should I change?
Thanks!!
  6 comentarios
Walter Roberson
Walter Roberson el 2 de Jul. de 2021
Are the labels the same for all EEG entries?
Carmen Sergiou
Carmen Sergiou el 5 de Jul. de 2021
Yes, so they are all labeled, and I am trying to match the channels that I choose to calculate the phase-correlation between with the matching labels in my EEG.chanloc file.

Iniciar sesión para comentar.

Respuesta aceptada

Walter Roberson
Walter Roberson el 7 de Jul. de 2021
channel1 = 'Fz';
EEG(1).chanlocs = struct('labels', {'Fp1', 'Fz', 'F3'}, 'sph_theta', {18, 0, 39})
EEG = struct with fields:
chanlocs: [1×3 struct]
EEG(2).chanlocs = struct('labels', {'Fp1', 'Fz', 'F3'}, 'sph_theta', {68, 44, 90});
EEG(3).chanlocs = struct('labels', {'Fp1', 'Fz', 'F3'}, 'sph_theta', {-17, 23, 45});
fields = {EEG(1).chanlocs.labels}
fields = 1×3 cell array
{'Fp1'} {'Fz'} {'F3'}
[found_channel1, idx] = ismember(channel1, fields)
found_channel1 = logical
1
idx = 2
So now if found_channel1 is true then idx is valid and is the field number of channel1 in EEG(:).chanlocs .
This assumes that the channel labels are exactly the same for all EEG(K).chanlocs .
extracted_info = cell2mat(arrayfun(@(S) S.chanlocs(idx), EEG, 'uniform', 0))
extracted_info = 1×3 struct array with fields:
labels sph_theta
{extracted_info.labels}
ans = 1×3 cell array
{'Fz'} {'Fz'} {'Fz'}
[extracted_info.sph_theta]
ans = 1×3
0 44 23
  1 comentario
Carmen Sergiou
Carmen Sergiou el 7 de Jul. de 2021
Thank you so so much!! I have replicated all your steps and also for channel 2 and it works.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre EEG/MEG/ECoG en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by