system was developed as a utility (i.e., a tool) to aid an investigator in 

 pulling together all the data required for a desired analysis and preparing the 

 data for direct use by other analytic systems. 



c. MATRIX System Design Considerations 



The principal design consideration for MATRIX was flexibility in input 

 data formats, retrieval and grouping of raw-data file values, and in manipula- 

 tion and presentation of matrix file contents. Flexibility was achieved mostly 

 through generalization of program code; MATRIX was written without any fixed 

 input file formats so that the system could be used on a variety of input data 

 types. Furthermore, when a matrix is produced from raw data, the user is 

 offered a high degree of flexibility regarding which file values are retrieved, 

 where they are positioned along a matrix dimension, and how they are "pooled" 

 in the matrix cells. Once a matrix has been created, any of several manipula- 

 tive operations can be performed on the data. Since these operations simply 

 act on matrix rows, columns, and planes, they are effectively available for use 

 with any MATRIX-compatible input file, regardless of the original format. 



Other design considerations were adaptability and allowance for user 

 creativity. The MATRIX system has been coded in such a way that as new higher- 

 level package programs become available or new functions are desired of MATRIX, 

 the changes necessary to incorporate the new features will require a minimum of 

 programming time. There is considerable room for creativity in the use of the 

 MATRIX system; manipulative functions currently available under MATRIX can take 

 matrices apart, "twist" them around, change the contents, and piece them 

 together. It is left entirely up to the user to become familiar with the power 

 of these operations and to envision their application to specific problems. 



d. Summary of MATRIX Functions 



Listed below are brief descriptions of the functions performed by MATRIX 

 system operations. 



GENERATE — Produces a numeric data matrix file of 2 or 3 dimensions from an 

 input file containing alphanumeric storage keys and numeric data variables. 

 The program provides for complete user definition of row, column, and plane 

 contents, automatic insertion of missing values, and pooling of qualified 

 retrieval values by summation or averaging. Storage keys are written along 

 with data to serve as row, column and plane labels. 



READ — Loads the data and label information from a previously generated matrix 

 file. 



VIEW — Displays (to the terminal) a subsection of the data points contained in 

 the currently active matrix file. User defines the extent of row, column, 

 and plane dimensions for a desired submatrix (which may be the entire 

 matrix if it is 2-dimensional ) . 



DESCRIBE — Lists the labels assigned to rows, columns, or planes. This func- 

 tion is helpful in determining the contents of a matrix. 



EDIT — Allows the user to modify contents of a matrix. A user may change 

 labels, cell values, contents of a vector ( single row, column, or plane), 

 or the missing value code assigned to a matrix. He may also add a vector 

 to an existing matrix. 



139 



