- Timestamp:
- May 14, 2008, 10:11:57 PM (15 years ago)
- Location:
- trunk
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/test/Suite.cc
r1249 r1304 62 62 63 63 64 voidSuite::add(bool ok)64 bool Suite::add(bool ok) 65 65 { 66 66 ok_ = ok_ && ok; 67 return ok; 67 68 } 68 69 -
trunk/test/Suite.h
r1249 r1304 45 45 /** 46 46 set ok to 'b && ok' 47 48 \return b 47 49 */ 48 voidadd(bool b);50 bool add(bool b); 49 51 50 52 /** -
trunk/test/utility_test.cc
r1289 r1304 26 26 #include "Suite.h" 27 27 28 #include "yat/utility/Matrix.h" 28 29 #include "yat/utility/utility.h" 29 30 #include "yat/utility/stl_utility.h" … … 32 33 #include <iostream> 33 34 #include <string> 35 36 using namespace theplu::yat; 37 void test_quantile_normalize(test::Suite&); 34 38 35 39 int main(int argc, char* argv[]) … … 113 117 } 114 118 119 test_quantile_normalize(suite); 120 115 121 return suite.return_value(); 116 122 } 123 124 void test_quantile_normalize(test::Suite& suite) 125 { 126 suite.err() << "Testing quantile normalization\n"; 127 128 utility::Matrix m(2,2); 129 m(0,0) = 0; 130 m(0,1) = 10; 131 m(1,0) = 2; 132 m(1,1) = 4; 133 utility::quantile_normalize(m); 134 suite.err() << "Testing m(0,0)\n"; 135 suite.add(suite.equal(m(0,0), 2)); 136 suite.err() << "Testing m(0,1)\n"; 137 suite.add(suite.equal(m(0,1), 6)); 138 suite.err() << "Testing m(1,0)\n"; 139 suite.add(suite.equal(m(1,0), 6)); 140 suite.err() << "Testing m(1,1)\n"; 141 suite.add(suite.equal(m(1,1), 2)); 142 143 } -
trunk/yat/utility/utility.cc
r1275 r1304 25 25 #include "utility.h" 26 26 27 #include "Matrix.h" 27 28 #include "stl_utility.h" 29 #include "VectorConstView.h" 30 #include "yat/statistics/Averager.h" 28 31 29 32 #include <sstream> … … 102 105 103 106 107 void quantile_normalize(Matrix& data) 108 { 109 Matrix data_copy(data); 110 111 // sort columns in copy 112 for (size_t column=0; column<data_copy.columns(); ++column){ 113 std::sort(data_copy.begin_column(column), data_copy.end_column(column)); 114 } 115 116 // calculate average of each row 117 std::vector<yat::statistics::Averager> averager(data_copy.rows()); 118 for (size_t row=0; row<data_copy.rows(); ++row){ 119 add(averager[row], data_copy.begin_row(row), data_copy.end_row(row)); 120 } 121 122 for (size_t column=0; column<data.columns(); ++column){ 123 std::vector<size_t> index; 124 const VectorConstView col_vec(data,column,false); 125 yat::utility::sort_index(index, data.column_const_view(column)); 126 127 for (size_t row=0; row<data.rows(); ++row) 128 data(index[row], column) = averager[row].mean(); 129 } 130 } 131 132 104 133 105 134 }}} // end of namespace utility, yat and thep -
trunk/yat/utility/utility.h
r1275 r1304 44 44 namespace utility { 45 45 46 class vector;46 class Matrix; 47 47 48 48 /** … … 81 81 bool is_nan(const std::string& s); 82 82 83 /** 84 \brief Perform quantile normalization 85 */ 86 void quantile_normalize(Matrix&); 83 87 84 88 // template implementations
Note: See TracChangeset
for help on using the changeset viewer.