How can I fill an empty matrix?

3 visualizzazioni (ultimi 30 giorni)
Laura Mansilla Valle
Laura Mansilla Valle il 24 Dic 2017
% Hi everyone I am trying to classfify a matrix M=21x2560 from an EEG. My aim is to divide the 21 channels into four different empty matrix. How can I fill temporal, occipital, parietal and frontal?. Then, I want to do the mean of every matrix created before. If I use "mean" only one value comes up but I want one value for each column of the matrix. Pleasee helpp meee! Thankyouuu!
load AD1.mat
M=X; [n,m]=size(M);
Temporal=[]; Frontal=[]; Parietal=[]; Occipital=[];
for i=1:n
c=M(i:2520);
signal=c;
Fs=128;
band=[1 60];
frequency_band=[1 4; 4 8; 8 13; 13 30; 30 40];
[ RelativePower ] = Compute_RP( signal,Fs,band,frequency_band);
RP_c=RelativePower;
if i==8 || i==13 || i==3 || i==4 || i==9 ||i==14
Temporal=[RP_c];
end
if i==1 || i==20 || i==2 || i==5 || i==6 ||i==7
Frontal=[RP_c];
end
if i==10 || i==11 || i==12 || i==15 || i==16 ||i==17
Parietal=[RP_c];
end
if i==18 || i==21 || i==19
Occipital=[RP_c];
end
end
RP_Temporal=Temporal; RP_Frontal=Frontal; RP_Parietal=Parietal; RP_Occipital=Occipital;
figure; bar(RP_Temporal); title('Relative Power Temporal lobe')
figure; bar(RP_Frontal); title ('Relative Power Frontal lobe')
figure; bar(RP_Parietal); title('Relative Power Parietal lobe')
figure; bar(RP_Occipital); title ('Relative Power Occipital lobe')

Risposte (1)

Harish Ramachandran
Harish Ramachandran il 28 Dic 2017
There are two points to note:
1. The piece of code below will overwrite Temporal's existing value at different values of i (with value of RP_c). Instead from your question, I gather that your requirement is to concatenate the value of Temporal with the i'th column of RP_c
if i==8 || i==13 || i==3 || i==4 || i==9 ||i==14
Temporal=[RP_c];
end
In order to concatenate the values, do take a look at this link . Your code would look something like this:
if i==8 || i==13 || i==3 || i==4 || i==9 ||i==14
Temporal =[ Temporal RP_c(:,i) ];
end
2. With respect to your statement:
If I use "mean" only one value comes up but I want one value for each column of the matrix.
Once the values are filled up and you get a matrix with N columns, you can calculate the mean of each column using the mean function.
>> x = rand(50,5);
>> Y = mean(x)
Y =
0.5413 0.5499 0.4918 0.4321 0.5170
Hope this helps.

Community Treasure Hunt

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

Start Hunting!

Translated by