Changeset 605
- Timestamp:
- 08/30/16 17:39:10 (8 years ago)
- Location:
- cpp/frams
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
cpp/frams/_demos/simil_test.cpp
r601 r605 1 1 // This file is a part of Framsticks SDK. http://www.framsticks.com/ 2 // Copyright (C) 1999-201 5Maciej Komosinski and Szymon Ulatowski.2 // Copyright (C) 1999-2016 Maciej Komosinski and Szymon Ulatowski. 3 3 // See LICENSE.txt for details. 4 4 … … 17 17 /** Computes a matrix of distances between all genotypes in the specified 18 18 .gen file, using the matching and measure weights as specified in the 19 command line. 20 21 Command line parameters: [-names] <genotypesFile> <w_dP> <w_dDEG> <w_dNEU> <w_dGEO> 22 23 Parameters: 24 <genotypesFile> name of a file with genotypes 25 <w_dP> weight of the difference in the number of parts 26 <w_dDEG> weight of the difference in degrees of matched parts 27 <w_dNEU> weight of the difference in neurons of matched parts 28 <w_dGEO> weight of the distance between matched parts 29 30 Switches: 31 -names specifies that the number and names of genotypes are to be printed to output 32 before the distance matrix; by default the number and names are not printed 33 34 Outputs a distance matrix in the format: 35 <row_1> (columns in a row are separated by TABs) 36 ... 37 <row_n> 38 */ 19 command line. */ 39 20 int main(int argc, char *argv[]) 40 21 { … … 49 30 if (argc < 7) 50 31 { 51 // too few parameters52 32 printf("Too few parameters!\n"); 53 printf("Command line: [-names] <genotypesFile> <w_dP> <w_dDEG> <w_dNEU> <w_dGEO> < isZfixed>\n\n");33 printf("Command line: [-names] <genotypesFile> <w_dP> <w_dDEG> <w_dNEU> <w_dGEO> <fixZaxis?>\n\n"); 54 34 printf("Parameters:\n"); 55 printf(" <genotypesFile> name of a file with genotypes\n");56 printf(" <w_dP> weight of the difference in the number of parts\n");57 printf(" <w_dDEG> weight of the difference in degrees of matched parts\n");58 printf(" <w_dNEU> weight of the difference in neurons of matched parts\n");59 printf(" <w_dGEO> weight of the distance of matched parts\n\n");60 printf(" <isZFixed> should z cooridante be fixed during the alignment\n");35 printf(" <genotypesFile> name of a file with genotypes\n"); 36 printf(" <w_dP> weight of the difference in the number of parts\n"); 37 printf(" <w_dDEG> weight of the difference in degrees of matched parts\n"); 38 printf(" <w_dNEU> weight of the difference in neurons of matched parts\n"); 39 printf(" <w_dGEO> weight of the distance of matched parts\n"); 40 printf(" <fixZaxis?> should the 'z' (vertical) coordinate be fixed during the alignment? (0 or 1)\n\n"); 61 41 printf("Switches:\n"); 62 printf(" -names specifies that the number and names of genotypes are to be printed to output\n");63 printf(" 42 printf(" -names specifies that the number and names of genotypes are to be printed to output\n"); 43 printf(" before the distance matrix; by default the number and names are not printed\n\n"); 64 44 65 45 printf("Outputs a symmetric distance matrix in the format:\n"); 66 printf(" <row_1> (columns in a row are separated by TABs)\n");67 printf(" ...\n");68 printf(" <row_n>\n");46 printf(" <row_1> (columns in a row are separated by TABs)\n"); 47 printf(" ...\n"); 48 printf(" <row_n>\n"); 69 49 70 50 return -1; … … 130 110 return -1; 131 111 } 132 else if (M.zFixed != 0 && M.zFixed != 1)133 { 134 printf("<isZFixed>=%d. <isZFixed> should be equal to 0 or 1\n", M.zFixed);135 return -1;112 else if (M.zFixed != 0 && M.zFixed != 1) 113 { 114 printf("<isZFixed>=%d. <isZFixed> should be equal to 0 or 1\n", M.zFixed); 115 return -1; 136 116 } 137 117 … … 194 174 if (bPrintNames) 195 175 { 196 // if "-names" switch was given, 197 // print the number of genotypes and their names 176 // if "-names" switch was given, print the number of genotypes and their names 198 177 printf("%li\n", pvGenos.size()); 199 178 for (unsigned int iGen = 0; iGen < pvNames.size(); iGen++) -
cpp/frams/model/similarity/simil_model.cpp
r601 r605 34 34 35 35 static ParamEntry MSparam_tab[] = { 36 {"Creature: Similarity", 1, 5, "ModelSimilarity", "Evaluates morphological dissimilarity. More information:\nhttp://www.framsticks.com/node/795\nhttp://www.framsticks.com/node/890", },36 {"Creature: Similarity", 1, 6, "ModelSimilarity", "Evaluates morphological dissimilarity. More information:\nhttp://www.framsticks.com/node/795\nhttp://www.framsticks.com/node/890", }, 37 37 {"simil_parts", 0, 0, "Weight of parts count", "f 0 100 0", FIELD(m_adFactors[0]), "Differing number of parts is also handled by the 'part degree' similarity component.",}, 38 38 {"simil_partdeg", 0, 0, "Weight of parts' degree", "f 0 100 1", FIELD(m_adFactors[1]), "",}, 39 39 {"simil_neuro", 0, 0, "Weight of neurons count", "f 0 100 0.1", FIELD(m_adFactors[2]), "",}, 40 40 {"simil_partgeom", 0, 0, "Weight of parts' geometric distances", "f 0 100 0", FIELD(m_adFactors[3]), "",}, 41 {"evaluateDistance", 0, PARAM_DONTSAVE | PARAM_USERHIDDEN, "evaluate model dissimilarity", "p f(oGeno,oGeno)", PROCEDURE(p_evaldistance), "Calculates dissimilarity between two models created from Geno objects.",}, 41 {"simil_fixedZaxis", 0, 0, "Fix 'z' (vertical) axis?", "d 0 1 0", FIELD(fixedZaxis), "", }, 42 {"evaluateDistance", 0, PARAM_DONTSAVE | PARAM_USERHIDDEN, "evaluate model dissimilarity", "p f(oGeno,oGeno)", PROCEDURE(p_evaldistance), "Calculates dissimilarity between two models created from Geno objects.", }, 42 43 {0,}, 43 44 }; … … 1997 1998 // get the position of the Part 1998 1999 P1Pos = P1->p; 1999 if (zFixed== 1)2000 if (fixedZaxis == 1) 2000 2001 { 2001 P1Pos.z = 0; 2002 P1Pos.z = 0; //fixed vertical axis, so pretend all points are on the xy plane 2002 2003 } 2003 2004 for (iP2 = 0; iP2 < pModel->getPartCount(); iP2++) … … 2007 2008 // get the position of the Part 2008 2009 P2Pos = P2->p; 2009 if (zFixed== 1)2010 if (fixedZaxis == 1) 2010 2011 { 2011 P2Pos.z = 0; 2012 P2Pos.z = 0; //fixed vertical axis, so pretend all points are on the xy plane 2012 2013 } 2013 2014 // compute the geometric (Euclidean) distance between the Parts … … 2019 2020 2020 2021 MatrixTools::SVD(vEigenvalues, nSize, pDistances, m_aPositions[ iMod ]); 2021 if (zFixed == 1)2022 if (fixedZaxis == 1) //restore the original vertical coordinate of each Part 2022 2023 { 2023 for (int coord = 0; coord < pModel->getPartCount(); coord++)2024 for (int part = 0; part < pModel->getPartCount(); part++) 2024 2025 { 2025 m_aPositions[ iMod ][coord].z = pModel->getPart(coord)->p.z;2026 m_aPositions[iMod][part].z = pModel->getPart(part)->p.z; 2026 2027 } 2027 2028 } -
cpp/frams/model/similarity/simil_model.h
r601 r605 82 82 double m_adFactors[4]; 83 83 84 //Controls the depth of fuzzy neighbourhood 84 //for Zfixed = 1, the "z" (vertical) coordinates are not taken into account during PCA alignment 85 int fixedZaxis; 86 87 //Controls the depth of fuzzy neighbourhood 85 88 int fuzzyDepth; 86 89 int isFuzzy; 87 //for Zfixed = 1 z coordinates are not taken into account during PCA alignment88 int zFixed;89 90 90 91 /// Interface to local parameters
Note: See TracChangeset
for help on using the changeset viewer.