diff --git a/usedMcode/noOfSynergies.m b/usedMcode/noOfSynergies.m index ddbdd57..790f754 100644 --- a/usedMcode/noOfSynergies.m +++ b/usedMcode/noOfSynergies.m @@ -1,12 +1,15 @@ % addpath('/home/hohlochj/masterarbeit/usedMcode') % pathToFile='/nfs/wsi/ti/messor/hohlochj/origData/'; pathToFile='/home/jph/Uni/masterarbeit/origData/'; +showFigure=true; +oneSubject=true; + +EMGChannels={'AbdPolLo','Biceps','Triceps','FrontDelt','MidDelt','BackDelt'}; maxFile=5; windowEMG=0.2; windowShift=0.05; maxSize=6; -oneSubject=true; [subjects,numbers]=namesAndNumbers(pathToFile); @@ -23,14 +26,15 @@ if oneSubject numbersMat=numbersMat(1); + number=numbersMat(1); + subject=subjectsForNumbers{1}; end 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,windowEMG,windowShift); + EMG{j}=readEMGSig(pathToFile,subjectsForNumbers{j},numbersMat(j),... + maxFile,windowEMG,windowShift,EMGChannels); end trainingData=cell2mat(EMG); @@ -43,13 +47,6 @@ 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)]); @@ -57,11 +54,6 @@ 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)]); @@ -71,8 +63,29 @@ r2NNMF(i,:)=correlation2(trainingData,predicted); end -subplot(1,3,3); -plot(r2NNMF) -title('NNMF') -xlabel('number of syergies') -ylabel('R^2') +if showFigure + fig=figure(); + subplot(1,3,1); + plot(r2Autoenc) + title('Autoencoder') + xlabel('number of syergies') + ylabel('R^2') + + subplot(1,3,2); + plot(r2PCA) + title('PCA') + xlabel('number of syergies') + ylabel('R^2') + + subplot(1,3,3); + plot(r2NNMF) + title('NNMF') + xlabel('number of syergies') + ylabel('R^2') +else + if oneSubject + save(strcat(pathToFile,sprintf('../matlabData/%s_noSyn%s%i.mat',datestr(datetime('now')),subject,number))); + else + save(strcat(pathToFile,sprintf('../matlabData/%s_noSynAll.mat',datestr(datetime('now'))))); + end +end \ No newline at end of file diff --git a/usedMcode/readEMGSig.m b/usedMcode/readEMGSig.m index 64374fc..8998eb7 100644 --- a/usedMcode/readEMGSig.m +++ b/usedMcode/readEMGSig.m @@ -1,11 +1,11 @@ -function [EMG]=readEMGSig(pathToFile,subject,number,maxFile,windowEMG,windowShift) +function [EMG]=readEMGSig(pathToFile,subject,number,maxFile,windowEMG,windowShift,EMGChannels) 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))); - tmp=sig(:,ismember(params.ChannelNames.Value,usedChannels)); - EMGcell{i}=waveformLengthAll(tmp,params.SamplingFrequency.NumericValue,windowEMG,windowShift); + [sig, ~, params] = load_bcidat(strcat(pathToFile,... + sprintf('%s/%s_B100%i/%s_B1S00%iR0%i.dat',subject,subject,number,subject,number,i))); + EMGcell{i}=waveformLengthAll(sig(:,ismember(params.ChannelNames.Value,EMGChannels)),... + params.SamplingRate.NumericValue,windowEMG,windowShift); end EMG=cell2mat(EMGcell);