1 #include "mrilib.h"
2
main(int argc,char * argv[])3 int main( int argc , char *argv[] )
4 {
5 char *expr ;
6 int ii , ll , ebas=1 ;
7
8 if( argc < 2 || strcmp(argv[1],"-help") == 0 ){
9 printf("Usage: 1dmatcalc [-verb] expression\n\n") ;
10 printf("%s\n",mri_matrix_evalrpn_help()) ;
11 printf("SIMPLE EXAMPLES\n"
12 "---------------\n"
13 "* Multiply each element of an input 1D file\n"
14 " by a constant factor and write to disk.\n"
15 " 1dmatcalc \"&read(in.1D) 3.1416 * &write(out.1D)\"\n"
16 "\n"
17 "* Subtract two 1D files\n"
18 " 1dmatcalc \"&read(a.1D) &read(b.1D) - &write(stdout:)\"\n"
19 ) ;
20 exit(0) ;
21 }
22
23 if( strcmp(argv[1],"-verb") == 0 ){
24 mri_matrix_evalrpn_verb(1) ; ebas++ ;
25 }
26
27 ll=16 ;
28 for( ii=ebas ; ii < argc ; ii++ ) ll += strlen(argv[ii])+1 ;
29 expr = calloc(1,ll) ;
30 for( ii=ebas ; ii < argc ; ii++ ){
31 strcat(expr,argv[ii]) ; strcat(expr," ") ;
32 }
33
34 if (!mri_matrix_evalrpn(expr)) {
35 exit(1); /* ZSS June 2013 */
36 }
37 exit(0) ;
38 }
39