From cad25240b3351bb60d8f686bc502b49d0294dcd3 Mon Sep 17 00:00:00 2001 From: Christian Beckmann <c.beckmann@donders.ru.nl> Date: Tue, 7 Aug 2007 20:27:19 +0000 Subject: [PATCH] *** empty log message *** --- meldata.cc | 5 ++++- melica.cc | 4 ++-- meloptions.h | 5 +++++ 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/meldata.cc b/meldata.cc index 6d6fd08..0dc130d 100644 --- a/meldata.cc +++ b/meldata.cc @@ -209,7 +209,10 @@ namespace Melodic{ tmpData = process_file(opts.inputfname.value().at(ctr), numfiles); if(opts.debug.value()) save4D(tmpData /numfiles,string("preproc_dat") + num2str(ctr+1)); - alldat += tmpData / numfiles; + if(tmpData.Ncols() == alldat.Ncols() && tmpData.Nrows() == alldat.Nrows()) + alldat += tmpData / numfiles; + else + message("Data dimensions do not match - ignoring "+opts.inputfname.value().at(ctr) << endl); } //update mask diff --git a/melica.cc b/melica.cc index d264066..b5d9b7c 100644 --- a/melica.cc +++ b/melica.cc @@ -114,13 +114,13 @@ namespace Melodic{ Matrix temp(melodat.get_dewhite() * redUMM); temp = melodat.expand_dimred(temp); temp = krapprox(temp,int(temp.Nrows()/melodat.get_numfiles())); - minAbsSin2 = 1 - diag(corrcoef(temp,rank1_old)).Minimum(); + minAbsSin2 = 1 - diag(abs(corrcoef(temp,rank1_old))).Minimum(); rank1_old = temp; temp = melodat.reduce_dimred(temp); redUMM = melodat.get_white() * temp; message(" change : " << abs(minAbsSin2) << endl); - if(abs(minAbsSin2) < 0.01 && abs(minAbsSin) < opts.epsilon.value()){ break;} + if(abs(minAbsSin2) < opts.epsilonS.value() && abs(minAbsSin) < opts.epsilon.value()){ break;} } } while( (itt_ctr2 < newmaxitts/opts.maxNumItt.value()) && diff --git a/meloptions.h b/meloptions.h index a49c9e1..bc9cda6 100644 --- a/meloptions.h +++ b/meloptions.h @@ -65,6 +65,7 @@ class MelodicOptions { Option<string> segment; Option<bool> tsmooth; Option<float> epsilon; + Option<float> epsilonS; Option<int> maxNumItt; Option<int> maxRestart; Option<int> rank1interval; @@ -212,6 +213,9 @@ class MelodicOptions { epsilon(string("--eps,--epsilon"), 0.0005, string("minimum error change"), false, requires_argument), + epsilonS(string("--epsS,--epsilonS"), 0.03, + string("minimum error change for rank-1 approximation in TICA"), + false, requires_argument), maxNumItt(string("--maxit"), 500, string("\tmaximum number of iterations before restart"), false, requires_argument), @@ -376,6 +380,7 @@ class MelodicOptions { options.add(segment); options.add(tsmooth); options.add(epsilon); + options.add(epsilonS); options.add(maxNumItt); options.add(maxRestart); options.add(rank1interval); -- GitLab