average selected columns with labels

hello all,
I have the attached data. It shows a part of my data. I need to average selected coumns in red only. I need to tell matlab that average electrodes such as ChFP1, ChF7, ChF3, and ChFT7, across subjects and write the resluts in one column at the end of data. How should I do that? I wrote this so far. Thank you in advance. I tried to creat a logical index but could not with a cell array.
if exist(fileName,'file')
[num,str]=xlsread(fileName); %read both str and data
ch_lables=(str(1,:)); %electrode lables, cell array
sub_names=str(:,1); %subjects names, cell array
end

2 comentarios

Hi,
if you know where are red numbers, try this
a=num(:,4)
b=num(:,7)
c=num(:,11)
d=num(:,12)
A=[a;b;c;d]
[n,m]=size(A)
for i=1:1:n
s(i)=a(i)+b(i)+c(i)+d(i)
avrg=s(i)/4
fprintf(fileName(:,15),'%.4f\n',avrg)
end
I wish that this will help you and good luck.
Elaheh
Elaheh el 14 de Ag. de 2020
Thank you,
No, the order of labes is different in each file, so I need to average across lables of channels that are the same in all files, I need to average ChFP1, ChF7, ChF3, ChFT7, ChFC3) and other combination of electrod lables.
I appreicipate your help.
Zahra

Iniciar sesión para comentar.

 Respuesta aceptada

KSSV
KSSV el 14 de Ag. de 2020
Use readtable. This is suggested now.
T = readtable(filename) ;
mean_ChF7 = mean(T.ChF7)

6 comentarios

Elaheh
Elaheh el 14 de Ag. de 2020
Thank you for your reply.
In fact, I need to do this, but it did not work.
T = readtable(fileName) ;
mean_LA = mean(T.ChFP1,T.ChF7,T.ChF3,T.ChFT7,T.ChFC3);
Zahra
mean_LA = [mean(T.ChFP1) mean(T.ChF7) mean(T.ChF3) mean(T.ChFT7) mean(T.ChFC3)];
OR
mean_LA = mean([T.ChFP1 T.ChF7 T.ChF3 T.ChFT7 T.ChFC3]);
Elaheh
Elaheh el 14 de Ag. de 2020
The problem with these two lines is that they give me 5 values, one for each channel. In fact, I need 22 values one for each participant for these 5 channels. in other words, I need to average across the rows and not across columns.
Please see the attached file.
Zahra
mean_LA = mean([T.ChFP1 T.ChF7 T.ChF3 T.ChFT7 T.ChFC3],2);
KSSV
KSSV el 14 de Ag. de 2020
OP commented: It works. Thank you so much. What is 2 for?
KSSV
KSSV el 14 de Ag. de 2020
2 stands for mean along each row..this what you wanted. DEfault is 1, which is mean along each column.
NOTE: You have to accept/ vote the answer which worked for you. Not that you comment and accept that. :)

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Productos

Versión

R2019a

Etiquetas

Preguntada:

el 14 de Ag. de 2020

Comentada:

el 14 de Ag. de 2020

Community Treasure Hunt

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

Start Hunting!

Translated by