file.c 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  1. // #ifdef __cplusplus
  2. // extern "C" {
  3. // #endif
  4. //========================================================================================================================================================================================================200
  5. // DEFINE/INCLUDE
  6. //========================================================================================================================================================================================================200
  7. // #include <stdlib.h>
  8. // #include <string.h>
  9. #include <stdio.h>
  10. // #include <math.h>
  11. // #include <time.h>
  12. // #include <sys/types.h>
  13. // #include <dirent.h>
  14. // #include <errno.h>
  15. #include "file.h"
  16. //========================================================================================================================================================================================================200
  17. // WRITE FUNCTION
  18. //========================================================================================================================================================================================================200
  19. void
  20. write_file( char* filename,
  21. fp* input,
  22. int data_rows,
  23. int data_cols,
  24. int major,
  25. int data_range){
  26. //=====================================================================
  27. // VARIABLES
  28. //=====================================================================
  29. FILE* fid;
  30. int i, j;
  31. //=====================================================================
  32. // CREATE/OPEN FILE FOR WRITING
  33. //=====================================================================
  34. fid = fopen(filename, "w");
  35. if( fid == NULL ){
  36. printf( "The file was not created/opened for writing\n" );
  37. fflush(0);
  38. return;
  39. }
  40. //=====================================================================
  41. // WRITE VALUES TO THE FILE
  42. //=====================================================================
  43. // if matrix is saved row major in memory (C)
  44. if(major==0){
  45. for(i=0; i<data_rows; i++){
  46. for(j=0; j<data_cols; j++){
  47. fprintf(fid, "%f ", (fp)input[i*data_cols+j]);
  48. }
  49. fprintf(fid, "\n");
  50. }
  51. }
  52. // if matrix is saved column major in memory (MATLAB)
  53. else{
  54. for(i=0; i<data_rows; i++){
  55. for(j=0; j<data_cols; j++){
  56. fprintf(fid, "%f ", (fp)input[j*data_rows+i]);
  57. }
  58. fprintf(fid, "\n");
  59. }
  60. }
  61. //=====================================================================
  62. // CLOSE FILE
  63. //=====================================================================
  64. fclose(fid);
  65. }
  66. //========================================================================================================================================================================================================200
  67. // READ FUNCTION
  68. //========================================================================================================================================================================================================200
  69. void read_file( char* filename,
  70. fp* input,
  71. int data_rows,
  72. int data_cols,
  73. int major){
  74. //=====================================================================
  75. // VARIABLES
  76. //=====================================================================
  77. FILE* fid;
  78. int i, j;
  79. fp temp;
  80. //=====================================================================
  81. // OPEN FILE FOR READING
  82. //=====================================================================
  83. fid = fopen(filename, "r");
  84. if( fid == NULL ){
  85. printf( "The file was not opened for reading\n" );
  86. fflush(0);
  87. return;
  88. }
  89. //=====================================================================
  90. // READ VALUES FROM THE FILE
  91. //=====================================================================
  92. if(major==0){ // if matrix is saved row major in memory (C)
  93. for(i=0; i<data_rows; i++){
  94. for(j=0; j<data_cols; j++){
  95. fscanf(fid, "%f", &temp);
  96. input[i*data_cols+j] = (fp)temp;
  97. }
  98. }
  99. }
  100. else{ // if matrix is saved column major in memory (MATLAB)
  101. for(i=0; i<data_rows; i++){
  102. for(j=0; j<data_cols; j++){
  103. fscanf(fid, "%f", &temp);
  104. input[j*data_rows+i] = (fp)temp;
  105. }
  106. }
  107. }
  108. //=====================================================================
  109. // CLOSE FILE
  110. //=====================================================================
  111. fclose(fid);
  112. }
  113. //========================================================================================================================================================================================================200
  114. // END
  115. //========================================================================================================================================================================================================200
  116. // #ifdef __cplusplus
  117. // }
  118. // #endif