diff --git a/.gitignore b/.gitignore index e7fb459..f84bf05 100644 --- a/.gitignore +++ b/.gitignore @@ -7,7 +7,7 @@ src/ matlabData/ *mex* -Block* +origData/ BCI2000* *.mat *.zip diff --git a/oldMcode/correlation2.m b/oldMcode/correlation2.m deleted file mode 100644 index ce92014..0000000 --- a/oldMcode/correlation2.m +++ /dev/null @@ -1,9 +0,0 @@ -function [R2]=correlation2(A,B) - if size(A)~=size(B) - error('dimension missmatch') - end - R2=zeros(size(A,2),1); - for i=1:size(A,2) - R2(i)=corr(A(:,i),B(:,i))^2; - end -end \ No newline at end of file diff --git a/oldMcode/noOfSynergies.m b/oldMcode/noOfSynergies.m deleted file mode 100644 index f752137..0000000 --- a/oldMcode/noOfSynergies.m +++ /dev/null @@ -1,42 +0,0 @@ -maxSize=min(6,size(trainingData,2)); - -r2Autoenc=zeros([maxSize,size(trainingData,2)]); -for i=1:maxSize - ae=trainAutoencoder(trainingData,i,'ShowProgressWindow',false); - predicted=predict(ae,trainingData); - r2Autoenc(i,:)=correlation2(trainingData,predicted); -end - -fig=figure(); -subplot(1,3,1); -plot(r2Autoenc) -title('Autoencoder') -xlabel('number of syergies') -ylabel('R^2') - -%PCA -[COEFF,SCORE,latent] = pca(trainingData,'Centered',false); -r2PCA=zeros([maxSize,size(trainingData,2)]); -for i=1:maxSize - predicted=SCORE(:,1:i)*COEFF(:,1:i)'; - r2PCA(i,:)=correlation2(trainingData,predicted); -end -subplot(1,3,2); -plot(r2PCA) -title('PCA') -xlabel('number of syergies') -ylabel('R^2') - -%NNMF -r2NNMF=zeros([maxSize,size(trainingData,2)]); -for i=1:maxSize - [W,H]=nnmf(trainingData,i); - predicted=W*H; - r2NNMF(i,:)=correlation2(trainingData,predicted); -end - -subplot(1,3,3); -plot(r2NNMF) -title('NNMF') -xlabel('number of syergies') -ylabel('R^2') \ No newline at end of file diff --git a/usedMcode/correlation2.m b/usedMcode/correlation2.m new file mode 100644 index 0000000..db4b233 --- /dev/null +++ b/usedMcode/correlation2.m @@ -0,0 +1,9 @@ +function [R2]=correlation2(A,B) + if size(A)~=size(B) + error('dimension missmatch') + end + R2=zeros(size(A,2),1); + for i=1:size(A,2) + R2(i)=corr(A(:,i),B(:,i)).^2; + end +end \ No newline at end of file diff --git a/usedMcode/noOfSynergies.m b/usedMcode/noOfSynergies.m new file mode 100644 index 0000000..e440cdb --- /dev/null +++ b/usedMcode/noOfSynergies.m @@ -0,0 +1,72 @@ +addpath('/home/hohlochj/masterarbeit/usedMcode') +pathToFile='/nfs/wsi/ti/messor/hohlochj/origData/'; +%pathToFile='/home/jph/Uni/masterarbeit/origData/'; +maxFile=5; + +[subjects,numbers]=namesAndNumbers(pathToFile); +numbersMat=cell2mat(numbers); +subjectsForNumbers=cell(size(numbersMat,2),1); +j=1; +for i=1:size(subjects,2) + subject=subjects{i}; + for number=numbers{i} + subjectsForNumbers{j}=subject; + j=j+1; + end +end +j=j-1; + +EMG=cell(size(numbersMat,2),1); + +parfor j=1:size(numbersMat,2) + number=numbersMat(j); + subject=subjectsForNumbers{j}; + EMG{j}=readEMGSig(pathToFile,subject,number,maxFile); +end + +trainingData=cell2mat(EMG); + + + +maxSize=6; + +r2Autoenc=zeros([maxSize,size(trainingData,2)]); +for i=1:maxSize + ae=trainAutoencoder(trainingData',i,'ShowProgressWindow',false); + predicted=predict(ae,trainingData'); + r2Autoenc(i,:)=correlation2(trainingData,predicted'); +end + +fig=figure(); +subplot(1,3,1); +plot(r2Autoenc) +title('Autoencoder') +xlabel('number of syergies') +ylabel('R^2') + +%PCA +[COEFF,SCORE,latent] = pca(trainingData,'Centered',false); +r2PCA=zeros([maxSize,size(trainingData,2)]); +for i=1:maxSize + predicted=SCORE(:,1:i)*COEFF(:,1:i)'; + r2PCA(i,:)=correlation2(trainingData,predicted); +end +subplot(1,3,2); +plot(r2PCA) +title('PCA') +xlabel('number of syergies') +ylabel('R^2') + +%NNMF +r2NNMF=zeros([maxSize,size(trainingData,2)]); +for i=1:maxSize + [W,H]=nnmf(trainingData,i); + predicted=W*H; + r2NNMF(i,:)=correlation2(trainingData,predicted); +end + +subplot(1,3,3); +plot(r2NNMF) +title('NNMF') +xlabel('number of syergies') +ylabel('R^2') \ No newline at end of file diff --git a/usedMcode/readEMGSig.m b/usedMcode/readEMGSig.m new file mode 100644 index 0000000..f03da3a --- /dev/null +++ b/usedMcode/readEMGSig.m @@ -0,0 +1,11 @@ +function [EMG]=readEMGSig(pathToFile,subject,number,maxFile) + EMGcell=cell(maxFile,1); + usedChannels={'AbdPolLo','Biceps','Triceps','FrontDelt','MidDelt','BackDelt'}; + + for i=1:maxFile + [sig, ~, params] = load_bcidat(strcat(pathToFile,sprintf('%s/%s_B100%i/%s_B1S00%iR0%i.dat',subject,subject,number,subject,number,i))); + EMGcell{i}=sig(:,ismember(params.ChannelNames.Value,usedChannels)); + end + + EMG=cell2mat(EMGcell); +end \ No newline at end of file