21 using namespace Cosan;
23 std::vector<std::vector<std::string>> svalues;
24 std::vector<std::unordered_map<std::string, gsl::index>> categories;
25 std::vector<std::string> svaluesX = std::vector<std::string>({
"a",
"b",
"c",
"b",
"a",
"c"});
26 gsl::index colCat = 3 ;
27 svalues = std::vector<std::vector<std::string>>(colCat,std::vector<std::string>(svaluesX.size()/colCat,
"") );
30 for (gsl::index col = 0;col<colCat;col++){
31 std::unordered_map<std::string, gsl::index> categoryToOrdinal{};
32 for (gsl::index row = 0;row<svaluesX.size()/colCat;row++){
33 svalues[col][row] = svaluesX[row*colCat+col];
34 if (categoryToOrdinal.find(svalues[col][row]) == categoryToOrdinal.end()) {
35 categoryToOrdinal.insert({svalues[col][row], categoryToOrdinal.size()});
38 categories.push_back(categoryToOrdinal);
40 for (gsl::index row = 0;row<svaluesX.size()/colCat;row++){
41 OneHotMatrixi(row,categoryToOrdinal[svalues[col][row]]) = 1;
44 newMatrix =OneHotMatrixi;
47 for (gsl::index i = 0;i<OneHotMatrixi.cols();i++){
48 newMatrix.conservativeResize(newMatrix.rows(), newMatrix.cols()+1);
49 newMatrix.col(newMatrix.cols()-1) = OneHotMatrixi.col(i);
87 std::cout<<newMatrix<<std::endl;