From c8f956a5b085f9f6de4ab7e0c64aaa7257deff6d Mon Sep 17 00:00:00 2001 From: Anelli <anelli@mit.edu> Date: Thu, 18 Aug 2016 18:30:51 +0200 Subject: [PATCH] Fixed bug in reading of dissimilarity matrices dissimilarity matrix in file should contain dissimilarity not square of dissimilarity --- .../analysis.0.mymatrix3.dat.reference | 12 ++++----- .../rt-calc-dissims/mymatrix.dat.reference | 26 +++++++++---------- .../rt-calc-dissims/mymatrix2.dat.reference | 10 +++---- .../rt-calc-dissims/mymatrix3.dat.reference | 12 ++++----- .../rt-reselect-land/mymatrix.dat.reference | 4 +-- src/analysis/PrintDissimilarityMatrix.cpp | 2 +- src/analysis/ReadDissimilarityMatrix.cpp | 2 +- src/dimred/DimensionalityReductionBase.cpp | 2 +- 8 files changed, 35 insertions(+), 35 deletions(-) diff --git a/regtest/analysis/rt-calc-dissims/analysis.0.mymatrix3.dat.reference b/regtest/analysis/rt-calc-dissims/analysis.0.mymatrix3.dat.reference index 964f0140e..c41cddfd7 100644 --- a/regtest/analysis/rt-calc-dissims/analysis.0.mymatrix3.dat.reference +++ b/regtest/analysis/rt-calc-dissims/analysis.0.mymatrix3.dat.reference @@ -1,6 +1,6 @@ - 0.0000 1.0000 4.0000 9.0000 16.0000 25.0000 - 1.0000 0.0000 1.0000 4.0000 9.0000 16.0000 - 4.0000 1.0000 0.0000 1.0000 4.0000 9.0000 - 9.0000 4.0000 1.0000 0.0000 1.0000 4.0000 - 16.0000 9.0000 4.0000 1.0000 0.0000 1.0000 - 25.0000 16.0000 9.0000 4.0000 1.0000 0.0000 + 0.0000 1.0000 2.0000 3.0000 4.0000 5.0000 + 1.0000 0.0000 1.0000 2.0000 3.0000 4.0000 + 2.0000 1.0000 0.0000 1.0000 2.0000 3.0000 + 3.0000 2.0000 1.0000 0.0000 1.0000 2.0000 + 4.0000 3.0000 2.0000 1.0000 0.0000 1.0000 + 5.0000 4.0000 3.0000 2.0000 1.0000 0.0000 diff --git a/regtest/analysis/rt-calc-dissims/mymatrix.dat.reference b/regtest/analysis/rt-calc-dissims/mymatrix.dat.reference index e7c621920..07321a10d 100644 --- a/regtest/analysis/rt-calc-dissims/mymatrix.dat.reference +++ b/regtest/analysis/rt-calc-dissims/mymatrix.dat.reference @@ -1,13 +1,13 @@ - 0.0000 0.0000 1.0000 4.0000 9.0000 16.0000 25.0000 36.0000 49.0000 64.0000 81.0000 100.0000 121.0000 - 0.0000 0.0000 1.0000 4.0000 9.0000 16.0000 25.0000 36.0000 49.0000 64.0000 81.0000 100.0000 121.0000 - 1.0000 1.0000 0.0000 1.0000 4.0000 9.0000 16.0000 25.0000 36.0000 49.0000 64.0000 81.0000 100.0000 - 4.0000 4.0000 1.0000 0.0000 1.0000 4.0000 9.0000 16.0000 25.0000 36.0000 49.0000 64.0000 81.0000 - 9.0000 9.0000 4.0000 1.0000 0.0000 1.0000 4.0000 9.0000 16.0000 25.0000 36.0000 49.0000 64.0000 - 16.0000 16.0000 9.0000 4.0000 1.0000 0.0000 1.0000 4.0000 9.0000 16.0000 25.0000 36.0000 49.0000 - 25.0000 25.0000 16.0000 9.0000 4.0000 1.0000 0.0000 1.0000 4.0000 9.0000 16.0000 25.0000 36.0000 - 36.0000 36.0000 25.0000 16.0000 9.0000 4.0000 1.0000 0.0000 1.0000 4.0000 9.0000 16.0000 25.0000 - 49.0000 49.0000 36.0000 25.0000 16.0000 9.0000 4.0000 1.0000 0.0000 1.0000 4.0000 9.0000 16.0000 - 64.0000 64.0000 49.0000 36.0000 25.0000 16.0000 9.0000 4.0000 1.0000 0.0000 1.0000 4.0000 9.0000 - 81.0000 81.0000 64.0000 49.0000 36.0000 25.0000 16.0000 9.0000 4.0000 1.0000 0.0000 1.0000 4.0000 - 100.0000 100.0000 81.0000 64.0000 49.0000 36.0000 25.0000 16.0000 9.0000 4.0000 1.0000 0.0000 1.0000 - 121.0000 121.0000 100.0000 81.0000 64.0000 49.0000 36.0000 25.0000 16.0000 9.0000 4.0000 1.0000 0.0000 + 0.0000 0.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 + 0.0000 0.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 + 1.0000 1.0000 0.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 + 2.0000 2.0000 1.0000 0.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 + 3.0000 3.0000 2.0000 1.0000 0.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 + 4.0000 4.0000 3.0000 2.0000 1.0000 0.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 + 5.0000 5.0000 4.0000 3.0000 2.0000 1.0000 0.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 + 6.0000 6.0000 5.0000 4.0000 3.0000 2.0000 1.0000 0.0000 1.0000 2.0000 3.0000 4.0000 5.0000 + 7.0000 7.0000 6.0000 5.0000 4.0000 3.0000 2.0000 1.0000 0.0000 1.0000 2.0000 3.0000 4.0000 + 8.0000 8.0000 7.0000 6.0000 5.0000 4.0000 3.0000 2.0000 1.0000 0.0000 1.0000 2.0000 3.0000 + 9.0000 9.0000 8.0000 7.0000 6.0000 5.0000 4.0000 3.0000 2.0000 1.0000 0.0000 1.0000 2.0000 + 10.0000 10.0000 9.0000 8.0000 7.0000 6.0000 5.0000 4.0000 3.0000 2.0000 1.0000 0.0000 1.0000 + 11.0000 11.0000 10.0000 9.0000 8.0000 7.0000 6.0000 5.0000 4.0000 3.0000 2.0000 1.0000 0.0000 diff --git a/regtest/analysis/rt-calc-dissims/mymatrix2.dat.reference b/regtest/analysis/rt-calc-dissims/mymatrix2.dat.reference index 5ed581592..bc2c5ae13 100644 --- a/regtest/analysis/rt-calc-dissims/mymatrix2.dat.reference +++ b/regtest/analysis/rt-calc-dissims/mymatrix2.dat.reference @@ -1,5 +1,5 @@ - 0.0000 1.0000 9.0000 25.0000 49.0000 - 1.0000 0.0000 4.0000 16.0000 36.0000 - 9.0000 4.0000 0.0000 4.0000 16.0000 - 25.0000 16.0000 4.0000 0.0000 4.0000 - 49.0000 36.0000 16.0000 4.0000 0.0000 + 0.0000 1.0000 3.0000 5.0000 7.0000 + 1.0000 0.0000 2.0000 4.0000 6.0000 + 3.0000 2.0000 0.0000 2.0000 4.0000 + 5.0000 4.0000 2.0000 0.0000 2.0000 + 7.0000 6.0000 4.0000 2.0000 0.0000 diff --git a/regtest/analysis/rt-calc-dissims/mymatrix3.dat.reference b/regtest/analysis/rt-calc-dissims/mymatrix3.dat.reference index 964f0140e..c41cddfd7 100644 --- a/regtest/analysis/rt-calc-dissims/mymatrix3.dat.reference +++ b/regtest/analysis/rt-calc-dissims/mymatrix3.dat.reference @@ -1,6 +1,6 @@ - 0.0000 1.0000 4.0000 9.0000 16.0000 25.0000 - 1.0000 0.0000 1.0000 4.0000 9.0000 16.0000 - 4.0000 1.0000 0.0000 1.0000 4.0000 9.0000 - 9.0000 4.0000 1.0000 0.0000 1.0000 4.0000 - 16.0000 9.0000 4.0000 1.0000 0.0000 1.0000 - 25.0000 16.0000 9.0000 4.0000 1.0000 0.0000 + 0.0000 1.0000 2.0000 3.0000 4.0000 5.0000 + 1.0000 0.0000 1.0000 2.0000 3.0000 4.0000 + 2.0000 1.0000 0.0000 1.0000 2.0000 3.0000 + 3.0000 2.0000 1.0000 0.0000 1.0000 2.0000 + 4.0000 3.0000 2.0000 1.0000 0.0000 1.0000 + 5.0000 4.0000 3.0000 2.0000 1.0000 0.0000 diff --git a/regtest/analysis/rt-reselect-land/mymatrix.dat.reference b/regtest/analysis/rt-reselect-land/mymatrix.dat.reference index a63e08105..328f27d32 100644 --- a/regtest/analysis/rt-reselect-land/mymatrix.dat.reference +++ b/regtest/analysis/rt-reselect-land/mymatrix.dat.reference @@ -1,2 +1,2 @@ - 0.0000 0.0171 - 0.0171 0.0000 + 0.0000 0.1308 + 0.1308 0.0000 diff --git a/src/analysis/PrintDissimilarityMatrix.cpp b/src/analysis/PrintDissimilarityMatrix.cpp index f90f0a339..8fd4e2cd7 100644 --- a/src/analysis/PrintDissimilarityMatrix.cpp +++ b/src/analysis/PrintDissimilarityMatrix.cpp @@ -71,7 +71,7 @@ void PrintDissimilarityMatrix::performAnalysis(){ std::string ofmt=" "+fmt; OFile ofile; ofile.setBackupString("analysis"); ofile.open(fname); for(unsigned i=0;i<getNumberOfDataPoints();++i){ - for(unsigned j=0;j<getNumberOfDataPoints();++j) ofile.printf(ofmt.c_str(), mydata->getDissimilarity( i,j ) ); + for(unsigned j=0;j<getNumberOfDataPoints();++j) ofile.printf(ofmt.c_str(), sqrt( mydata->getDissimilarity( i,j ) ) ); ofile.printf("\n"); } ofile.close(); diff --git a/src/analysis/ReadDissimilarityMatrix.cpp b/src/analysis/ReadDissimilarityMatrix.cpp index 717803ac1..e52b3f6f0 100644 --- a/src/analysis/ReadDissimilarityMatrix.cpp +++ b/src/analysis/ReadDissimilarityMatrix.cpp @@ -156,7 +156,7 @@ unsigned ReadDissimilarityMatrix::getNumberOfDataPoints() const { } double ReadDissimilarityMatrix::getDissimilarity( const unsigned& iframe, const unsigned& jframe ){ - return dissimilarities( iframe, jframe ); + return dissimilarities( iframe, jframe )*dissimilarities( iframe, jframe ); } ReferenceConfiguration* ReadDissimilarityMatrix::getReferenceConfiguration( const unsigned& idata, const bool& calcdist ){ diff --git a/src/dimred/DimensionalityReductionBase.cpp b/src/dimred/DimensionalityReductionBase.cpp index ec7c165c9..32c30f8ec 100644 --- a/src/dimred/DimensionalityReductionBase.cpp +++ b/src/dimred/DimensionalityReductionBase.cpp @@ -79,7 +79,7 @@ void DimensionalityReductionBase::performAnalysis(){ } } // Calculate matrix of dissimilarities - Matrix<double> targets( getNumberOfDataPoints(), getNumberOfDataPoints() ); + Matrix<double> targets( getNumberOfDataPoints(), getNumberOfDataPoints() ); targets=0; for(unsigned i=1;i<getNumberOfDataPoints();++i){ for(unsigned j=0;j<i;++j) targets(i,j)=targets(j,i)=getDissimilarity( i, j ); } -- GitLab