File: extra_matio.c

package info (click to toggle)
libpdl-io-matlab-perl 0.005-5
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 2,776 kB
  • sloc: ansic: 19,025; sh: 10,875; makefile: 658; perl: 120
file content (77 lines) | stat: -rw-r--r-- 2,174 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
/* This code copied from docs. It was broken.
   I fixed it a bit.
*/
static char *mxclass[16] = {"cell", "struct", "object","char","sparse",
                            "double","single","int8", "uint8","int16","uint16",
                            "int32","uint32","int64","uint64","function"
};
void extra_matio_print_all_var_info_clumsy(mat_t * matfp) {
  matvar_t *matvar;
  size_t    nbytes;
  int       i;
  char size[32] = {' ',};
  fflush(stdout);
  printf( "%-20s       %-10s     %-10s     %-18s\n", "Name", "Size", "Bytes", "Class");
  while ( NULL != (matvar = Mat_VarReadNextInfo(matfp)) ) {
    printf("%-20s", matvar->name);
    if ( matvar->rank > 0 ) {
      int cnt = 0;
      printf("%8zd", matvar->dims[0]);
      for ( i = 1; i < matvar->rank; i++ ) {
        if ( ceil(log10(matvar->dims[i]))+1 < 32 )
          cnt += sprintf(size+cnt,"x%zd", matvar->dims[i]);
      }
      printf("%-10s",size);
    } else {
      printf("                    ");
    }
    nbytes = Mat_VarGetSize(matvar);
    printf("  %8zd",nbytes);
    printf("         %-18s\n",mxclass[matvar->class_type-1]);
    Mat_VarPrint(matvar,0);
    Mat_VarFree(matvar);
  }
  fflush(stdout);
}


/* 
   This one is simpler ! 
*/

void extra_matio_print_all_var_info (mat_t * matfp, int printdata) {
  matvar_t *matvar;
  fflush(stdout);
  if (printdata)
    while ( NULL != (matvar = Mat_VarReadNext(matfp)) ) {
      Mat_VarPrint(matvar,printdata);
      Mat_VarFree(matvar);
    }
  else 
    while ( NULL != (matvar = Mat_VarReadNextInfo(matfp)) ) {
      Mat_VarPrint(matvar,printdata);
      Mat_VarFree(matvar);
    }
  fflush(stdout);
}


/* broken */
/*
void extra_matio_print_all_var_info_new (mat_t * matfp, int printdata,
                                     int max_cols, int max_rows) {
  matvar_t *matvar;
  fflush(stdout);
  if (printdata)
    while ( NULL != (matvar = Mat_VarReadNext(matfp)) ) {
      Mat_VarPrint2(matvar,printdata,max_cols,max_rows);
      Mat_VarFree(matvar);
    }
  else 
    while ( NULL != (matvar = Mat_VarReadNextInfo(matfp)) ) {
      Mat_VarPrint2(matvar,printdata,max_cols,max_rows);
      Mat_VarFree(matvar);
    }
  fflush(stdout);
}
*/