|
@@ -0,0 +1,151 @@
|
|
|
+/**
|
|
|
+* @file testMatFileIO.cpp
|
|
|
+* @brief
|
|
|
+* @author Paul Bodesheim
|
|
|
+* @date 06/01/2012 (dd-mm-yyyy)
|
|
|
+*/
|
|
|
+
|
|
|
+#include <vector>
|
|
|
+#include <iostream>
|
|
|
+#include <stdlib.h>
|
|
|
+#include <stdarg.h>
|
|
|
+#include <stdio.h>
|
|
|
+#include <string.h>
|
|
|
+#include <math.h>
|
|
|
+#include "fast-hik/matio/src/matio.h"
|
|
|
+#include "fast-hik/MatFileIO.h"
|
|
|
+
|
|
|
+using namespace std;
|
|
|
+using namespace NICE;
|
|
|
+
|
|
|
+int main (int argc, char* argv[]) {
|
|
|
+
|
|
|
+ std::string filenameA = "/home/bodesheim/data/2012-01-09-testMatFileIO/sparse3x3matrixA.mat";
|
|
|
+
|
|
|
+ // A
|
|
|
+ MatFileIO matfileIOA = MatFileIO(filenameA,MAT_ACC_RDONLY);
|
|
|
+ printf("\n%d \n", matfileIOA.getNumberOfVariables());
|
|
|
+
|
|
|
+ sparse_t sparseA;
|
|
|
+ matfileIOA.getSparseVariableViaName(sparseA,"A");
|
|
|
+ for (uint i = 0; i < sparseA.nzmax; i++) std::cout << ((double*)sparseA.data)[i]<< " ";
|
|
|
+ std::cerr << std::endl;
|
|
|
+ std::cerr << "now start reading imagenet-data" << std::endl;
|
|
|
+
|
|
|
+ std::string filename = "/home/dbv/bilder/imagenet/devkit-1.0/demo/demo.train.mat";
|
|
|
+ std::string variable1 = "training_instance_matrix";
|
|
|
+ std::string variable2 = "training_label_vector";
|
|
|
+
|
|
|
+ //
|
|
|
+ // test matvar functions
|
|
|
+ //
|
|
|
+
|
|
|
+ mat_t * mat;
|
|
|
+ matvar_t * matvar;
|
|
|
+
|
|
|
+ mat = Mat_Open(filename.c_str(),MAT_ACC_RDONLY);
|
|
|
+ matvar = Mat_VarReadNext(mat);
|
|
|
+
|
|
|
+ while (matvar != NULL) {
|
|
|
+
|
|
|
+ printf("dimension of variable: %i : ",matvar->rank);
|
|
|
+ printf("%i ",*(matvar->dims));
|
|
|
+ for (int i = 2; i<=matvar->rank; i++) {
|
|
|
+
|
|
|
+ matvar->dims++;
|
|
|
+ printf("x %i ",*(matvar->dims));
|
|
|
+
|
|
|
+ }
|
|
|
+ printf("\n");
|
|
|
+ matvar = Mat_VarReadNext(mat);
|
|
|
+
|
|
|
+ };
|
|
|
+
|
|
|
+ //
|
|
|
+ // test class MatFileIO
|
|
|
+ //
|
|
|
+
|
|
|
+ MatFileIO matfileIO = MatFileIO(filename,MAT_ACC_RDONLY);
|
|
|
+ printf("\nnumber of variables: %d \n", matfileIO.getNumberOfVariables());
|
|
|
+
|
|
|
+ sparse_t *sparse;
|
|
|
+ matfileIO.getSparseVariableViaName(*sparse,variable1);
|
|
|
+
|
|
|
+ printf("\nSparse Matrix \n");
|
|
|
+
|
|
|
+ for ( int i = 0; i < 5; i++ ) {
|
|
|
+ for ( int j = sparse->jc[i]; j < sparse->jc[i+1] && j < sparse->ndata && j < sparse->jc[i]+5; j++ ) {
|
|
|
+
|
|
|
+ printf("\t\t(%d,%d)\t%f", sparse->ir[j]+1,i+1,((double*)sparse->data)[j]);
|
|
|
+ }
|
|
|
+ printf("\n");
|
|
|
+ }
|
|
|
+
|
|
|
+// int count = 0;
|
|
|
+//
|
|
|
+// for ( int i = 0; i < sparse->njc-1; i++ ) {
|
|
|
+// for ( int j = sparse->jc[i]; j < sparse->jc[i+1] && j < sparse->ndata; j++ )
|
|
|
+//
|
|
|
+// if (count < 15) {
|
|
|
+//
|
|
|
+// printf(" (%d,%d) %f\n", sparse->ir[j]+1,i+1, data[j]);
|
|
|
+// count++;
|
|
|
+// }
|
|
|
+// }
|
|
|
+
|
|
|
+ NICE::Vector vec;
|
|
|
+ matfileIO.getVectorViaName(vec,variable2);
|
|
|
+
|
|
|
+ std::cout << std::endl << "Vector" << std::endl << std::endl;
|
|
|
+
|
|
|
+ for (size_t k = 0; k < 15; k++) {
|
|
|
+
|
|
|
+ std::cout << vec[k] << " ";
|
|
|
+ }
|
|
|
+
|
|
|
+ std::cout << "..." <<std::endl;
|
|
|
+
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+// int main (int argc, char* argv[]) {
|
|
|
+//
|
|
|
+// std::string filenameA = "/home/bodesheim/data/2012-01-09-testMatFileIO/sparse3x3matrixA.mat";
|
|
|
+// std::string filenameB = "/home/bodesheim/data/2012-01-09-testMatFileIO/full3x3matrixB.mat";
|
|
|
+// std::string filenameC = "/home/bodesheim/data/2012-01-09-testMatFileIO/uint8bit3x3matrixC.mat";
|
|
|
+// std::string filenameD = "/home/bodesheim/data/2012-01-09-testMatFileIO/int8bit3x3matrixD.mat";
|
|
|
+//
|
|
|
+// // A
|
|
|
+// MatFileIO matfileIO = MatFileIO(filenameA,MAT_ACC_RDONLY);
|
|
|
+// printf("\n%d \n", matfileIO.getNumberOfVariables());
|
|
|
+//
|
|
|
+// sparse_t sparse;
|
|
|
+// matfileIO.getSparseVariableViaName(sparse,"A");
|
|
|
+// for (uint i = 0; i < sparse.nzmax; i++) std::cout << ((double*)sparse.data)[i]<< " ";
|
|
|
+//
|
|
|
+// // B
|
|
|
+// matfileIO = MatFileIO(filenameB,MAT_ACC_RDONLY);
|
|
|
+// printf("\n%d \n", matfileIO.getNumberOfVariables());
|
|
|
+//
|
|
|
+// std::vector<std::vector<double> > features;
|
|
|
+// matfileIO.getFeatureMatrixViaName(features,"B");
|
|
|
+// for (uint i = 0; i < features.size(); i++) for (uint j = 0; j < features[i].size(); j++) std::cout << (features[i])[j] << " ";
|
|
|
+//
|
|
|
+// // C
|
|
|
+// matfileIO = MatFileIO(filenameC,MAT_ACC_RDONLY);
|
|
|
+// printf("\n%d \n", matfileIO.getNumberOfVariables());
|
|
|
+//
|
|
|
+// matfileIO.getFeatureMatrixViaName(features,"C");
|
|
|
+// for (uint i = 0; i < features.size(); i++) for (uint j = 0; j < features[i].size(); j++) std::cout << (features[i])[j] << " ";
|
|
|
+//
|
|
|
+// // D
|
|
|
+// matfileIO = MatFileIO(filenameD,MAT_ACC_RDONLY);
|
|
|
+// printf("\n%d \n", matfileIO.getNumberOfVariables());
|
|
|
+//
|
|
|
+// matfileIO.getFeatureMatrixViaName(features,"D");
|
|
|
+// for (uint i = 0; i < features.size(); i++) for (uint j = 0; j < features[i].size(); j++) std::cout << (features[i])[j] << " ";
|
|
|
+// printf("\n");
|
|
|
+//
|
|
|
+// return 0;
|
|
|
+// }
|