Commit a801c828849778a53d2ca7891f5c3774ad39f489
1 parent
e9a7821b
Added code to save a matrix to a file for debugging
Showing
2 changed files
with
21 additions
and
2 deletions
Show diff stats
src/basic_functions.h
... | ... | @@ -47,6 +47,24 @@ void mtxMultranspose(T* M3, T* M1, T* M2, size_t r1, size_t c1, size_t r2, size_ |
47 | 47 | } |
48 | 48 | } |
49 | 49 | |
50 | +template<typename T> | |
51 | +void mtxOutputFile(std::string filename, T* M, size_t rows, size_t cols){ | |
52 | + std::cout<<"Outputting "<<rows<<" x "<<cols<<" matrix to file: "<<filename<<std::endl; | |
53 | + ofstream outfile(filename.c_str()); //open a file for writing | |
54 | + //output the matrix | |
55 | + for(size_t r = 0; r < rows; r++){ | |
56 | + for(size_t c = 0; c < cols; c++){ | |
57 | + outfile<<M[r * cols + c]; | |
58 | + if(c != cols-1) | |
59 | + outfile<<","; | |
60 | + } | |
61 | + if(r != rows - 1) | |
62 | + outfile<<std::endl; | |
63 | + } | |
64 | + outfile.close(); | |
65 | + //outfile<<"This is a test."<<std::endl; | |
66 | +} | |
67 | + | |
50 | 68 | //display within class scatter |
51 | 69 | template<typename T> |
52 | 70 | void displayS(T* sw, size_t f){ | ... | ... |
src/main.cpp
... | ... | @@ -155,6 +155,7 @@ void gpuComputeEignS( size_t g, size_t fea){ |
155 | 155 | |
156 | 156 | ///DETERMINANT CURRENTLY REQUIRES OPENCV |
157 | 157 | std::cout<<"ERROR: This code requires a fix to remove an OpenCV dependence."<<std::endl; |
158 | + mtxOutputFile("newSw.csv", nSw, r, r); | |
158 | 159 | exit(1); |
159 | 160 | //FIX BY REPLACING THE FOLLOWING THREE LINES OF CODE USING LAPACK |
160 | 161 | //cv::Mat newSw = cv::Mat((int)r, (int)r, CV_32FC1, nSw); //within scatter of gnome g in the population |
... | ... | @@ -255,7 +256,7 @@ int main(int argc, char* argv[]){ |
255 | 256 | args.add("generations", "number of generationsr", "50"); |
256 | 257 | args.add("initial_guess", "initial guess of featues", ""); |
257 | 258 | args.add("debug", "display intermediate data for debugging"); |
258 | - args.add("binary", "Select features for binary classes", ""); | |
259 | + args.add("binary", "Calculate features based on class1 vs. all other classes", ""); | |
259 | 260 | args.add("trim", "this gives wavenumber to use in trim option of siproc which trims all bands from envi file except gagpu selected bands"); |
260 | 261 | |
261 | 262 | args.parse(argc,argv); //parse the command line arguments |
... | ... | @@ -263,7 +264,7 @@ int main(int argc, char* argv[]){ |
263 | 264 | //Print the help text if set |
264 | 265 | if(args["help"].is_set()){ //display the help text if requested |
265 | 266 | advertisement(); |
266 | - std::cout<<std::endl<<"usage: ga-gpu input output --option [A B C ...]"<<std::endl; | |
267 | + std::cout<<std::endl<<"usage: ga-gpu input_ENVI output.txt --classes class1.bmp class2.bmp ... --option [A B C ...]"<<std::endl; | |
267 | 268 | std::cout<<std::endl<<std::endl; |
268 | 269 | std::cout<<args.str()<<std::endl; |
269 | 270 | exit(1); | ... | ... |