testMatFileIO.cpp 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  1. /**
  2. * @file testMatFileIO.cpp
  3. * @brief
  4. * @author Paul Bodesheim
  5. * @date 06/01/2012 (dd-mm-yyyy)
  6. */
  7. #include <vector>
  8. #include <iostream>
  9. #include <stdlib.h>
  10. #include <stdarg.h>
  11. #include <stdio.h>
  12. #include <string.h>
  13. #include <math.h>
  14. #include "vislearning/matlabAccess/matio/src/matio.h"
  15. #include "vislearning/matlabAccess/MatFileIO.h"
  16. using namespace std;
  17. using namespace NICE;
  18. int main (int argc, char* argv[]) {
  19. std::string filenameA = "/home/bodesheim/data/2012-01-09-testMatFileIO/sparse3x3matrixA.mat";
  20. // A
  21. MatFileIO matfileIOA = MatFileIO(filenameA,MAT_ACC_RDONLY);
  22. printf("\n%d \n", matfileIOA.getNumberOfVariables());
  23. sparse_t sparseA;
  24. matfileIOA.getSparseVariableViaName(sparseA,"A");
  25. for (uint i = 0; i < sparseA.nzmax; i++) std::cout << ((double*)sparseA.data)[i]<< " ";
  26. std::cerr << std::endl;
  27. std::cerr << "now start reading imagenet-data" << std::endl;
  28. std::string filename = "/home/dbv/bilder/imagenet/devkit-1.0/demo/demo.train.mat";
  29. std::string variable1 = "training_instance_matrix";
  30. std::string variable2 = "training_label_vector";
  31. //
  32. // test matvar functions
  33. //
  34. mat_t * mat;
  35. matvar_t * matvar;
  36. mat = Mat_Open(filename.c_str(),MAT_ACC_RDONLY);
  37. matvar = Mat_VarReadNext(mat);
  38. while (matvar != NULL) {
  39. printf("dimension of variable: %i : ",matvar->rank);
  40. printf("%i ",*(matvar->dims));
  41. for (int i = 2; i<=matvar->rank; i++) {
  42. matvar->dims++;
  43. printf("x %i ",*(matvar->dims));
  44. }
  45. printf("\n");
  46. matvar = Mat_VarReadNext(mat);
  47. };
  48. //
  49. // test class MatFileIO
  50. //
  51. MatFileIO matfileIO = MatFileIO(filename,MAT_ACC_RDONLY);
  52. printf("\nnumber of variables: %d \n", matfileIO.getNumberOfVariables());
  53. sparse_t *sparse;
  54. matfileIO.getSparseVariableViaName(*sparse,variable1);
  55. printf("\nSparse Matrix \n");
  56. for ( int i = 0; i < 5; i++ ) {
  57. for ( int j = sparse->jc[i]; j < sparse->jc[i+1] && j < sparse->ndata && j < sparse->jc[i]+5; j++ ) {
  58. printf("\t\t(%d,%d)\t%f", sparse->ir[j]+1,i+1,((double*)sparse->data)[j]);
  59. }
  60. printf("\n");
  61. }
  62. // int count = 0;
  63. //
  64. // for ( int i = 0; i < sparse->njc-1; i++ ) {
  65. // for ( int j = sparse->jc[i]; j < sparse->jc[i+1] && j < sparse->ndata; j++ )
  66. //
  67. // if (count < 15) {
  68. //
  69. // printf(" (%d,%d) %f\n", sparse->ir[j]+1,i+1, data[j]);
  70. // count++;
  71. // }
  72. // }
  73. NICE::Vector vec;
  74. matfileIO.getVectorViaName(vec,variable2);
  75. std::cout << std::endl << "Vector" << std::endl << std::endl;
  76. for (size_t k = 0; k < 15; k++) {
  77. std::cout << vec[k] << " ";
  78. }
  79. std::cout << "..." <<std::endl;
  80. return 0;
  81. }
  82. // int main (int argc, char* argv[]) {
  83. //
  84. // std::string filenameA = "/home/bodesheim/data/2012-01-09-testMatFileIO/sparse3x3matrixA.mat";
  85. // std::string filenameB = "/home/bodesheim/data/2012-01-09-testMatFileIO/full3x3matrixB.mat";
  86. // std::string filenameC = "/home/bodesheim/data/2012-01-09-testMatFileIO/uint8bit3x3matrixC.mat";
  87. // std::string filenameD = "/home/bodesheim/data/2012-01-09-testMatFileIO/int8bit3x3matrixD.mat";
  88. //
  89. // // A
  90. // MatFileIO matfileIO = MatFileIO(filenameA,MAT_ACC_RDONLY);
  91. // printf("\n%d \n", matfileIO.getNumberOfVariables());
  92. //
  93. // sparse_t sparse;
  94. // matfileIO.getSparseVariableViaName(sparse,"A");
  95. // for (uint i = 0; i < sparse.nzmax; i++) std::cout << ((double*)sparse.data)[i]<< " ";
  96. //
  97. // // B
  98. // matfileIO = MatFileIO(filenameB,MAT_ACC_RDONLY);
  99. // printf("\n%d \n", matfileIO.getNumberOfVariables());
  100. //
  101. // std::vector<std::vector<double> > features;
  102. // matfileIO.getFeatureMatrixViaName(features,"B");
  103. // for (uint i = 0; i < features.size(); i++) for (uint j = 0; j < features[i].size(); j++) std::cout << (features[i])[j] << " ";
  104. //
  105. // // C
  106. // matfileIO = MatFileIO(filenameC,MAT_ACC_RDONLY);
  107. // printf("\n%d \n", matfileIO.getNumberOfVariables());
  108. //
  109. // matfileIO.getFeatureMatrixViaName(features,"C");
  110. // for (uint i = 0; i < features.size(); i++) for (uint j = 0; j < features[i].size(); j++) std::cout << (features[i])[j] << " ";
  111. //
  112. // // D
  113. // matfileIO = MatFileIO(filenameD,MAT_ACC_RDONLY);
  114. // printf("\n%d \n", matfileIO.getNumberOfVariables());
  115. //
  116. // matfileIO.getFeatureMatrixViaName(features,"D");
  117. // for (uint i = 0; i < features.size(); i++) for (uint j = 0; j < features[i].size(); j++) std::cout << (features[i])[j] << " ";
  118. // printf("\n");
  119. //
  120. // return 0;
  121. // }