Open Access Dataset and Toolbox of High-Density Surface Electromyogram Recordings 1.0.0

File: <base>/toolbox/function/feature_normalize.m (1,346 bytes)
function [feature_train_norm,feature_test_norm]=feature_normalize(feature_train,feature_test,pca_active,dim)

% if pca_active==1,perform pca to reduce the dimensionality of features to dim.

if iscell(feature_train) == 0, feature_train = {feature_train}; end
if iscell(feature_test) == 0, feature_test = {feature_test}; end

N_train_trial=length(feature_train);

feature_train_concat=[];
for i=1:N_train_trial
    feature_train_concat=[feature_train_concat,feature_train{1,i}];
end

mean_val=mean(feature_train_concat,2);
std_val=std(feature_train_concat')';

if(pca_active==1)
    feature_train_concat=(feature_train_concat-mean_val)./std_val;
    covx=cov(feature_train_concat');
    [WPCA,LATENT] = pcacov(covx);
end

for i=1:N_train_trial
    tmp=(feature_train{1,i}-mean_val)./std_val;
    if(pca_active==1)
        tmp=tmp'*WPCA(:,1:dim);
        tmp=tmp';
    end
    feature_train_norm{1,i}=tmp;
end

N_test_trial=length(feature_test);
for i=1:N_test_trial
    tmp=(feature_test{1,i}-mean_val)./std_val;
    if(pca_active==1)
        tmp=tmp'*WPCA(:,1:dim);
        tmp=tmp';
    end
    feature_test_norm{1,i}=tmp;
end

if length(feature_test_norm)==1, feature_test_norm = feature_test_norm{1}; end
if length(feature_train_norm)==1, feature_train_norm = feature_train_norm{1}; end