O-Matrix Version 6

a: Contents
Table of Contents: 1
Getting Started: 2
Basic Concepts: 3
Expressions: 4
Controlling Program Flow: 5
Elementary Functions: 6
Working with Rows, Columns and Sub-Blocks of Matrices: 7
Reading And Writing Data: 8
Graphics, Plotting, and Data Visualization: 9
User-Defined Functions: 10
Linear Algebra: 11
Curve Fitting, Optimization, and Derivatives: 12
FFTs, Filtering and Time Series: 13
Statistics and Statistical Distributions: 14
Special Functions: 15
Integration And Differential Equations: 16
Polynomials: 17
Graphical User Interface Programming: 18
Other Advanced Functions: 19
O-Matrix Code Debugger: 20
Linking With Other Languages, Programs and COM Components: 21
The O-Matrix Development Kit: 22
Appendix: 23
Mlmode: MATLAB® Compatibility: 24
Glossary: 25
Alphabetic Listing of Cross Reference Tags: 26
Keyword Index: 27

1: Table of Contents
O-Matrix Version 6: Omatrix6: 
    Table of Contents: _contents: 1
    Getting Started: starting: 2
        Readme File for O-Matrix Version 6.3: readme: 2.1
        About O-Matrix: aboutom: 2.2
        Starting O-Matrix: start: 2.3
        Example Navigator: exnav: 2.4
        The O-Matrix User Interface: omgui: 2.5
            The Command Line: cmdline: 2.5.1
            The Command Window: commandio: 2.5.2
            Graphics Windows: graphicio: 2.5.3
            The Debugger Window: debugio: 2.5.4
            The O-Matrix Menu Bar: menubar: 2.5.5
            The O-Matrix Toolbar: omtoolbar: 2.5.6
            Editor Windows: editorio: 2.5.7
        The O-Matrix Help System: gethelp: 2.6
        Customizing the Initial State of O-Matrix: customizing: 2.7
        Finding Text in Files: findinfiles: 2.8
        Exiting O-Matrix: exiting: 2.9
        O-Matrix Tutorial: Tutorial: 2.10
        Interactive GUI Tools: demo: 2.11
            A Dialog for Plotting Files: fileplotdlg: 2.11.1
            A Linear Least Squares Fitting Dialog: linlsqdlg: 2.11.2
            A Dialog for Fitting Polynomials: polfitdlg: 2.11.3
            Theoretical and Estimated Response for a Digital Filter: digfilter: 2.11.4
    Basic Concepts: basic: 3
        Assigning Values To Variables: assignment: 3.1
        Starting A New Program: clear: 3.2
        Assigning Values To Constants: const: 3.3
        Representing Matrix Elements In Program Input: elements: 3.4
        The Mathematical constant Pi: pi: 3.5
        Building Matrices: building: 3.6
        Terminating An O-Matrix Session: exit: 3.7
        Explicit Inclusion of Commands or Functions from a File: include: 3.8
        Implicit Inclusion of Commands or Functions from a File: auto_include: 3.9
        Comments and Statement Continuation: comment: 3.10
        Default Printing Of An Expression: printexp: 3.11
        Printing A List Of Expressions: print: 3.12
        Suspending Program Execution And Entering Debugger: stop: 3.13
        Determining The Column Dimension Of A Matrix: coldim: 3.14
        Determining The Row Dimension Of A Matrix: rowdim: 3.15
        Determining the Dimensions of a Matrix: size: 3.16
        Changing Matrix Dimensions: dim: 3.17
        Copying and Changing the Dimensions of a Matrix: reshape: 3.18
        Loading And Storing Matrices As Vectors: MatrixAsVector: 3.19
    Expressions: expression: 4
        Positive Sign: positive: 4.1
        Negative Sign: negative: 4.2
        Addition: addition: 4.3
        Automatic Conversion To A Higher Type: coercion: 4.4
        Subtraction: subtraction: 4.5
        Element-By-Element Multiplication: multiplication: 4.6
        Element-By-Element Division: division: 4.7
        Testing Numeric And Logical Equality: equality: 4.8
        Ordered Numeric And Logical Comparisons: ordered: 4.9
        Logical Operators: logicalOperator: 4.10
        Matrix Multiplication: matrixMultiplication: 4.11
        Linear Equations and Least Squares: matrixDivision: 4.12
        Element-By-Element Exponentiation: exponentiation: 4.13
        Matrix Transpose: transpose: 4.14
        The Norm Operator: norm: 4.15
        Testing String Equality: stringEquality: 4.16
        Ordered String Comparisons: stringOrdered: 4.17
        Sequence Operator: sequence: 4.18
        Order Of Operations: operationOrder: 4.19
    Controlling Program Flow: flow: 5
        If Statement: if: 5.1
        Grouping A Sequence Of Statements As A Block: block: 5.2
        For Statement: for: 5.3
        While Statement: while: 5.4
        Breaking Out Of For And While Loops: break: 5.5
        Transferring Control Using The Goto Statement: goto: 5.6
        Halting Program Execution: halt: 5.7
    Elementary Functions: elementary: 6
        Algebraic Functions: algebraic: 6.1
            Absolute Value Function: abs: 6.1.1
            The Square Root Function: sqrt: 6.1.2
            Determining The Maximum Element of a Matrix: max: 6.1.3
            Determining The Indices Of The Maximum Element: pmax: 6.1.4
            Computing The Maximum Element From Multiple Matrices: maxs: 6.1.5
            Computing The Minimum Element From Multiple Matrices: mins: 6.1.6
            The Complex Conjugate Function: conj: 6.1.7
            The Imaginary Part Function: imag: 6.1.8
            The Sign Function: sign: 6.1.9
            Largest Integer Less Than or Equal a Specified Value: floor: 6.1.10
            Smallest Integer Greater Than or Equal a Specified Value: ceil: 6.1.11
            Rounding of to the Nearest Integer Value: round: 6.1.12
            Rounding Numbers To The Nearest Integer: roundoff: 6.1.13
            Modulo Function: mod: 6.1.14
            Remainder Function: rem: 6.1.15
            Undo The Modulo Function: colunmod: 6.1.16
            Unwrap Angles To Absolute Angles Above Two Pie: unwrap: 6.1.17
            The Factorial Function: factorl: 6.1.18
            Computing Prime Numbers: primes: 6.1.19
        Transcendental Functions: transcendental: 6.2
            Inverse Cosine Function: acos: 6.2.1
            Inverse Sine Function: asin: 6.2.2
            Inverse Tangent Function: atan: 6.2.3
            Cosine Function: cos: 6.2.4
            Hyperbolic Cosine Function: cosh: 6.2.5
            Exponential Function: exp: 6.2.6
            Natural Logarithm Function: log: 6.2.7
            Base Ten Logarithm Function: log10: 6.2.8
            Sine Function: sin: 6.2.9
            Hyperbolic Sine Function: sinh: 6.2.10
            Tangent Function: tan: 6.2.11
            Hyperbolic Tangent Function: tanh: 6.2.12
            Base Two Logarithm Function: log2: 6.2.13
            Base Two Exponentiation Function: pow2: 6.2.14
            Inverse Tangent Function With Two Arguments: atan2: 6.2.15
            Angle Corresponding to a Complex Value: angle: 6.2.16
            Inverse Hyperbolic Sine Function: asinh: 6.2.17
            Inverse Hyperbolic Cosine Function: acosh: 6.2.18
            Inverse Hyperbolic Tangent Function: atanh: 6.2.19
            Square Root of Sum of Squares: hypot: 6.2.20
        Special Matrices: specialmatrices: 6.3
            Obtaining A Copy Of The Identity Matrix: identity: 6.3.1
            Creating A Matrix Of Zeros: zeros: 6.3.2
            Creating A Matrix Of Ones: ones: 6.3.3
            Filling A Matrix With Copies of Another Matrix: fill: 6.3.4
            Filling A Matrix With A Column Vector: fillcols: 6.3.5
            Filling A Matrix With A Row Vector: fillrows: 6.3.6
            Generating A Sequence Of Integers: seq: 6.3.7
            Constructing Toeplitz Matrices: toeplitz: 6.3.8
            Vandermonde Matrix: vander: 6.3.9
            Hankel Matrix: hankel: 6.3.10
            Hilbert Matrix: hilb: 6.3.11
            Exact Inverse of a Hilbert Matrix: invhilb: 6.3.12
            The Diagonal Function: diag: 6.3.13
            Lower Triangular Part of a Matrix: tril: 6.3.14
            Upper Triangular Part of a Matrix: triu: 6.3.15
            The Novalue Type In O-Matrix: novalue: 6.3.16
        Matrix Type Functions: matrixType: 6.4
            Determining The Type Of An Expression: type: 6.4.1
            Conversion To Integer: int: 6.4.2
            Conversion To Single-Precision: real: 6.4.3
            Conversion To Double-Precision: double: 6.4.4
            Element-By-Element Conversion To Complex: complex: 6.4.5
            Element-By-Element Conversion To Character: char: 6.4.6
            Conversion To Logical: logical: 6.4.7
            Matching The Types Of Two Matrices: matchtype: 6.4.8
        System Functions: systemFunctions: 6.5
            Elapsed Time Since Start of Session: time: 6.5.1
            Determining The Date and Time: clock: 6.5.2
            Starting and Reading an Elapsed Timer: tictoc: 6.5.3
            Starting Another Process: system: 6.5.4
            Getting And Setting The Current Working Directory: cwd: 6.5.5
            Listing the Names of Files in a Directory: listdir: 6.5.6
            Listing A Directory And All Its Subdirectories: listdirs: 6.5.7
            Renaming A File: mvfile: 6.5.8
            Removing A File: rmfile: 6.5.9
            Removing A Directory: rmdir: 6.5.10
            Removing A Directory And All Its Subdirectories: rmdirs: 6.5.11
            Determining If There Is A Directory With A Specified Name: isdir: 6.5.12
            Determines If Value Represents a Complete File Name: isfullpath: 6.5.13
            Creates a Full Path File Name: fullpath: 6.5.14
            Creating A Directory: mkdir: 6.5.15
            Checking For A File Or Directory: exists: 6.5.16
            Determining The Length Of A File: lenfile: 6.5.17
            Copying Files: cpfile: 6.5.18
            Creating A Temporary File Name: tempfile: 6.5.19
            Slowing or Suspending Execution: sleep: 6.5.20
            O-Matrix Version Specification: version: 6.5.21
            Clearing the Command Window: clc: 6.5.22
            Setting the Font for Editors: editorfont: 6.5.23
            Generating Sounds: beep: 6.5.24
            Getting an Environment Variable: getenv: 6.5.25
        Text Manipulation And Conversion: text: 6.6
            Lining Up Data Fields In A Character Matrix: align: 6.6.1
            Converting ASCII Numbers To Double-Precision Column Vector: atod: 6.6.2
            Converting ASCII Numbers To Integer: atoi: 6.6.3
            Conversion of Text Matrix to a Double Precision Matrix: char2dbl: 6.6.4
            Converting A Number To ASCII Characters: ntoa: 6.6.5
            Conversion of Numeric Matrix to Character Matrix: num2str: 6.6.6
            Converting a Character Matrix to a Numeric Matrix: str2num: 6.6.7
            Conversion From Decimal to Hexadecimal: dec2hex: 6.6.8
            Conversion From Hexadecimal to Decimal: hex2dec: 6.6.9
            Removing Trailing Spaces: strclip: 6.6.10
            Remove Leading and Trailing Spaces: clipstr: 6.6.11
            Converting Lower Case to Upper Case: low2up: 6.6.12
            Converting Upper Case to Lower Case: up2low: 6.6.13
            Surrounding Text in Quotes: dquote: 6.6.14
            Converts a Text File to a Character Row Vector: file2str: 6.6.15
            Packs An Entire Character Matrix Into One Row Vector: pack: 6.6.16
            Unpacks A Character Matrix From a Row Vector: unpack: 6.6.17
            Convert a Character Row Vector to a Valid O-Matrix Identifier: char2id: 6.6.18
            Replacing a Row of a Character Matrix: reprow: 6.6.19
            Map All Occurrences of a String In a Directory: str2strdir: 6.6.20
        Searching And Sorting: search: 6.7
            Sorting Rows Of A Matrix: sort: 6.7.1
            Sorting Rows With a Specified Key: sort3: 6.7.2
            Sorting The Rows Of A Matrix By Pointers: psort: 6.7.3
            Specifying Sort Key When Sorting By Pointers: psort3: 6.7.4
            Sorting (Mlmode): mlmode_sort: 6.7.5
            Reversing Row Order Of A Matrix: reverse: 6.7.6
            Flipping the Row Order of a Matrix: flipud: 6.7.7
            Flipping the Column Order of a Matrix: fliplr: 6.7.8
            Rotate A Matrix By a Multiple of 90 Degrees: rot90: 6.7.9
            Obtaining the Nonzero Elements of a Matrix: nonzeros: 6.7.10
            Determining Indices Corresponding to Nonzero Elements: find: 6.7.11
            Determining Indices Where A Text Pattern Occurs: find2: 6.7.12
            Determining Indices Where A Character Is Between Limits: find3: 6.7.13
            Matching Rows of A Character Matrix: whichrow: 6.7.14
        Checking For Certain Conditions: conditions: 6.8
            Determining if All Elements are True: all: 6.8.1
            Determining if All Elements are True (Mlmode): mlmode_all: 6.8.2
            Determining if Any Elements are True: any: 6.8.3
            Determining if Any Elements are True (Mlmode): mlmode_any: 6.8.4
            Number of Nonzero Elements: nnz: 6.8.5
            Checking For Matrix Equality: equal: 6.8.6
            Determining Which Values Have Full Precision: fullprec: 6.8.7
            Determines if a Matrix is Empty: isempty: 6.8.8
            Checking For Matrix Equality: isequal: 6.8.9
            Determines If All Elements Have Zero Imaginary Part: isreal: 6.8.10
            Determines If Value is Numeric-Valued Scalar: isnumscalar: 6.8.11
            Determines If Value is Character Matrix: ischarmatrix: 6.8.12
            Determines If Value is Character Vector: ischarvector: 6.8.13
            Determines If Value is Logical Scalar: islogicalscalar: 6.8.14
            Determines If Value is Numeric Matrix: isnummatrix: 6.8.15
            Determines If Value is a Numeric Vector: isnumvector: 6.8.16
            Determines Which Elements Are Finite: isfinite: 6.8.17
            Determines Which Elements Are Infinite: isinf: 6.8.18
            Determines Which Elements Are Not A Number: isnan: 6.8.19
            Determines If This is a Light Version of O-Matrix: islight: 6.8.20
            Determines If This is an O-Matrix Run-Time Engine Version: isrte: 6.8.21
            Determines If This is a O-Matrix Developer Version: isdeveloper: 6.8.22
        The Binary Logical Exclusive Or Operation: xor: 6.9
        Smallest Power of Two Greater or Equal a Specified Value: nextpow2: 6.10
        Evenly Spaced Grid With a Specified Number of Points: linspace: 6.11
        Create a Grid With Evenly Spaced Logarithms: logspace: 6.12
        Difference Between Successive Elements In Each Column: coldiff: 6.13
        Finite Differences of Arbitrary Order: diff: 6.14
        Replaces Zero By a Small Value: nozero: 6.15
    Working with Rows, Columns and Sub-Blocks of Matrices: submatrices: 7
        Elements Of A Vector: vectorelem: 7.1
        Elements Of A Matrix: matrixelem: 7.2
        Accessing A Single Row Or Column: rowcol: 7.3
        Accessing Sequential Rows Or Columns: seqrowcol: 7.4
        Sequential Elements Of A Vector: seqsubvec: 7.5
        Accessing A Subblock Of A Matrix: subblock: 7.6
        Accessing Non-sequential Rows And Columns: nonseq: 7.7
        Vector Indices: vecind: 7.8
        Using End As An Index Value: endexp: 7.9
        Changing Matrix Indices: base: 7.10
        Determining The Base Column Index Of A Matrix: colbase: 7.11
        Determining The Base Row Index Of A Matrix: rowbase: 7.12
    Reading And Writing Data: io: 8
        Determining The Number Of Matrix Rows In A File: nrows: 8.1
        Determining The Number Of Columns In Each Row Of A File: ncols: 8.2
        Reading The Next Row From A File: read: 8.3
        Reading A Specified Number Of Rows From A File: read3: 8.4
        Reading A Matrix Of Specified Size From A File: read4: 8.5
        Writing a Matrix to the Screen or a File: write: 8.6
        Specifying Number of Elements per Output Line: write3: 8.7
        Closing Files: close: 8.8
        Detecting End of File: eof: 8.9
        Setting and Getting Output Formats: IOformat: 8.10
            Getting An Output Format: format: 8.10.1
            Setting The Integer Output Format: formatint: 8.10.2
            Setting Floating Point Output Formats: formatfloat: 8.10.3
            Set Printing and Tracing Options: setprint: 8.10.4
        Reading Excel Data: xlread: 8.11
        Writing Excel Data: xlwrite: 8.12
        Getting Excel Worksheet Names: xlsheets: 8.13
        Reading SigmaPlot Data: spread: 8.14
        Reading Binary Files: bread: 8.15
        Writing Binary Files: bwrite: 8.16
        Reading and Plotting WAV Audio Files: readwav: 8.17
        Reading HDF Data: h5read: 8.18
        Writing HDF Data: h5write: 8.19
        Saving Output Written in Command Window: diary: 8.20
        Reading MATLAB® Data: matfiles: 8.21
            Reading MAT-Files: mfread: 8.21.1
            Listing the Variables in a MAT-File: mfvars: 8.21.2
        Reading and Writing to Network Folders: netio: 8.22
        Reading Data from the Internet: urlget: 8.23
        Transferring Files Over the Internet Using FTP: ftp: 8.24
            open - Opening an ftp Connection to a Remote Host: openftp: 8.24.1
            close - Closing the ftp Connection to a Remote Host: closeftp: 8.24.2
            get - Retrieving a File From a Remote Host: getftp: 8.24.3
            put - Transferring a File To a Remote Host: putftp: 8.24.4
            ls - Listing File and Directory Names On a Remote Host: lsftp: 8.24.5
            delete - Deleting a File on a Remote Host: delftp: 8.24.6
            cd - Changing Directories on a Remote Host: cdftp: 8.24.7
            type - Setting the File Transfer Type: typeftp: 8.24.8
    Graphics, Plotting, and Data Visualization: graphics: 9
        Basic Graphics: basicGraphics: 9.1
            Drawing Line Plots: gplot: 9.1.1
            Drawing Line Plots With Specified Style: gplotstyle: 9.1.2
            Drawing Line Plots Z denoted by Color: gplotlevels: 9.1.3
            Setting Z Values Corresponding To Color Changes In Plots: glevel: 9.1.4
            Initializing Graphic: ginit: 9.1.5
            Setting The Line Plotting Style: gstyle: 9.1.6
            Printing A Graphic Window: gprint: 9.1.7
            Copying A Graphic Window To The Clipboard: gcopy: 9.1.8
            Line Color Sequence For The Current Viewport: gcolor: 9.1.9
            Creating A New Graphics Window: gaddwin: 9.1.10
            Specifying A Graphics Window's Caption: gaddwin1: 9.1.11
            Specifying A Graphics Window's Geometry: gaddwin2: 9.1.12
            Specifying A Graphics Window's Call Back Command: gaddwin3: 9.1.13
            Specifying A Graphics Window's Initial Style: gaddwin4: 9.1.14
            Using Identifier To Switch Between Graphic Windows: gwin: 9.1.15
            Listing Graphic Window Identifiers: glistwin: 9.1.16
            Creating A New Viewport In The Current Graphic Window: gaddview: 9.1.17
            Setting Various Viewport Options: setview: 9.1.18
            Using Identifier To Switch Between Graphic Viewports: gview: 9.1.19
            Using Location To Switch Between Graphic Viewports: gview2: 9.1.20
            Listing Viewport Identifiers For Current Graphic Window: glistview: 9.1.21
            Clearing The Current Viewport: ginitview: 9.1.22
            Deleting A Viewport: gdelview: 9.1.23
            Adding A Border Around The Current Viewport: gaddborder: 9.1.24
            Removes The Border Around The Current Viewport: gdelborder: 9.1.25
            Determining If There Is A Border Around Current Viewport: gborder: 9.1.26
            Updating The Current Graphic Window: gupdate: 9.1.27
        Axis Labeling And Manipulation: axis: 9.2
            Defining A Title For Current Viewport: gtitle: 9.2.1
            Defining A Title For An Axis In The Current Viewport: gxyztitle: 9.2.2
            Setting Axis Parameters: gxyzaxis: 9.2.3
            Setting Axis Minimum and Maximum: gxyzaxis3: 9.2.4
            Setting Major Intervals On An Axis: gxyzaxis4: 9.2.5
            Setting Minor Intervals On An Axis: gxyzaxis5: 9.2.6
            Autoscaling Multiple Plots To Same Axis Limits: axiscale: 9.2.7
            Two Scalings For Both X and Y Axis: g2scale: 9.2.8
            Specifying Numeric Format For Tick Mark Labels: gtickform: 9.2.9
            Specifying Tick Mark Locations: gtickloc: 9.2.10
            Specifying Nonnumeric Tick Mark Labels: gticklabel: 9.2.11
            Including A Grid In A Plot: gxygrid: 9.2.12
            Setting The Axis Intercept Point For A Viewport: gintercept: 9.2.13
            Using The Mouse To Specify A Graphic Window Location: gcoord: 9.2.14
            Converting Plotting Coordinates To A Graphic Window Location: gcoord2: 9.2.15
            Placing Text In The Current Graphic Window: gaddtext: 9.2.16
            Listing Text In The Current Graphics Window: glisttext: 9.2.17
            Removing Text From The Current Graphics Window: gdeltext: 9.2.18
            Setting Graphics Text Font Type Face: gfont: 9.2.19
            Setting Graphics Text Font Size: gfont2: 9.2.20
            Setting Graphics Text Font Color: gfont3: 9.2.21
            Setting Graphics Text Font Styles: gfont4: 9.2.22
            Determining Available Font Names: gfontname: 9.2.23
            Adjusting The Space Around The Plotting Region: gspace: 9.2.24
            Setting Plotting Window Aspect Ratio: gaspect: 9.2.25
        Plotting Functions Of Two Variables: fun2var: 9.3
            Contour Plots: contour: 9.3.1
            Specifying Contour Levels: contour2: 9.3.2
            Specifying X And Y Values In A Contour Plot: contour4: 9.3.3
            Specifying Plane For A Contour Plot: contour5: 9.3.4
            Hiding Lines Behind A Contour Plot: contour6: 9.3.5
            Mesh And Surface Plots: mesh: 9.3.6
            Specifying Line Color In Mesh And Surface Plots: mesh2: 9.3.7
            Specifying X and Y Values In Mesh And Surface Plots: mesh4: 9.3.8
            Specifying Plotting Style In Mesh And Surface Plots: mesh5: 9.3.9
            Rotating Plotting Axis: grotate: 9.3.10
        Special Plots: specialplots: 9.4
            Plotting Error Bars: errorbar: 9.4.1
            Plotting Vectors: garrow: 9.4.2
            Plotting Histograms: ghist: 9.4.3
            Plotting A Bar Graph With Different Width Bars: gbar: 9.4.4
            Plotting A Bar Graph With Uniform Width Bars: bar: 9.4.5
            Plotting A Stair Graph: gstair: 9.4.6
            Plotting In Polar Coordinates: polar: 9.4.7
            Plotting a Smith Chart: smith: 9.4.8
            Plotting The Response Of A Continuous Filter: fcplot: 9.4.9
            Plotting The Response Of A Digital Filter: fdplot: 9.4.10
        Line Plots Using One Command: plot: 9.5
        Using Tecplot with O-Matrix: tecplot: 9.6
            Adding a Zone to an Existing Dataset: tpaddzone: 9.6.1
            Line Color Sequence for XY Plots: tpcolors: 9.6.2
            Creating Contour Plots: tpcontour: 9.6.3
            Creating Tecplot Data Sets: tpdataset: 9.6.4
            Getting Dataset and Zone Dimensions: tpdims: 9.6.5
            Creating Image Files: tpexport: 9.6.6
            Popping, Creating and Obtaining Frame Names: tpframe: 9.6.7
            Transferring Data from Tecplot to O-Matrix: tpget: 9.6.8
            Transferring Volume Data from Tecplot to O-Matrix: tpget3D: 9.6.9
            Creating Histograms: tphist: 9.6.10
            Running a Tecplot Macro File: tpmacrofile: 9.6.11
            Running a Tecplot Macro String: tpmacrostring: 9.6.12
            Copying Maps in a Data Set: tpmapcopy: 9.6.13
            Determining the Number of Maps in the Current Frame: tpmapcount: 9.6.14
            Opening Tecplot Data, Layout and Style Files: tpopen: 9.6.15
            Creating XY Plots: tpplot: 9.6.16
            Setting and Retrieving Current Frame Plot Type: tpplottype: 9.6.17
            Printing the Current Frame: tpprint: 9.6.18
            Transferring Data from O-Matrix to Tecplot: tpput: 9.6.19
            Transferring Data from O-Matrix to a Tecplot Volume: tpput3D: 9.6.20
            Checking if Tecplot is Running: tprunning: 9.6.21
            Connecting with a Tecplot Server: tpstart: 9.6.22
            Creating Surface Plots: tpsurface: 9.6.23
            Setting Symbol Style for XY Plots: tpsymbols: 9.6.24
            Obtaining a Variable Name from Variable Number: tpvarname: 9.6.25
            Obtaining a Variable Number from Variable Name: tpvarnum: 9.6.26
            Setting X, Y and Z Axes Minimum, Maximum, and Type: tpxyzaxes: 9.6.27
            Setting the Zone for Plot Functions: tpzone: 9.6.28
            Obtaining a Zone Name from Zone Number: tpzonename: 9.6.29
            Obtaining a Zone Number from Zone Name: tpzonenum: 9.6.30
            wtecplot - Writing and Creating Tecplot Files: wtecplot: 9.6.31
            rtecplot - Reading Tecplot Files: rtecplot: 9.6.32
            A GUI for Manipulating Tecplot Data Files: pltgui: 9.6.33
        Data Visualizer for O-Matrix: DataVisualizer: 9.7
            Getting Started with Data Visualizer: avstart: 9.7.1
            Transferring Data: avput: 9.7.2
            Saving Plots with Data: avsave: 9.7.3
            Creating XY Plots: avplot: 9.7.4
            Creating Image Plots: avimage: 9.7.5
            Modifying the Data Visualizer Color Palette: avpalette: 9.7.6
            Creating Surface Plots: avsurface: 9.7.7
            Setting the Object to be Displayed by Data Visualizer: avpath: 9.7.8
    User-Defined Functions: userdefined: 10
        Defining Functions: definingfun: 10.1
        Returning from a Function: return: 10.2
        Clearing Functions: clearfun: 10.3
        Defining Functions With Arguments: arguments: 10.4
        Number of Arguments in a Function Call: nargin: 10.5
        Defining Functions With Variable Numbers Of Arguments: argnumber: 10.6
        Using Variables And Constants With Functions: varwithfun: 10.7
        Using Recursion: recursion: 10.8
        Forward And Joint Reference Of Functions: forward: 10.9
        Functions As Arguments: funarguments: 10.10
        Defining Functions With Multiple Return Values: multiplereturn: 10.11
        Number of Return Values Corresponding to a Function Call: nargout: 10.12
        Functions As Variables: funvar: 10.13
        Local Variables: localvar: 10.14
        Defining Local Functions: localfun: 10.15
        Local Variable Functions: localvarfun: 10.16
        Executing The Function Corresponding To A String: feval: 10.17
        Timing User-Defined Function Execution: profile: 10.18
    Linear Algebra: linear: 11
        Kronecker Tensor Product: kron: 11.1
        Inverting A Square Matrix: inv: 11.2
        Computing The Trace Of A Matrix: trace: 11.3
        The Determinant Function: det: 11.4
        Log Of The Determinant Of A Matrix: logdet: 11.5
        Computing The Rank Of A Matrix: rank: 11.6
        Computing The Condition Number Of A Matrix: cond: 11.7
        Orthogonal Basis for Null Space of a Matrix: null: 11.8
        Orthogonal Basis for Range Space of a Matrix: orth: 11.9
        Moore-Penrose Pseudo Inverse of a Matrix: pinv: 11.10
        Cholesky Factoring Of A Matrix: cholesky: 11.11
        Computing The LU Factorization Of A Matrix: lu: 11.12
        Singular Value Decomposition: svd: 11.13
        Simple Syntax for QR factorization: qr: 11.14
        Alternate Syntax for Computing the QR Factorization: qred: 11.15
        Eigenvalues and EigenVectors of a General Matrix: eigen: 11.16
        Generalized Eigenvalues and Eigenvectors of a General Matrix: geneig: 11.17
        Eigenvalues And Eigenvectors Of A Symmetric Matrix: eigsym: 11.18
        Computing The Eigenvectors Of A Symmetric Matrix: symeig: 11.19
        Schur Factorization: schur: 11.20
        Solving A Symmetric Toeplitz System Using Levinson's Algorithm: levinson: 11.21
        Solving A Tridiagonal System Of Linear Equations: tridiag: 11.22
        Solves a Symmetric Block Tri-Diagonal System of Equations: BlockTriDiag: 11.23
    Curve Fitting, Optimization, and Derivatives: fit: 12
        Piecewise Linear Interpolation In One Dimension: interp: 12.1
        Piecewise Linear Interpolation In One Dimension: interp1: 12.2
        Lagrange Polynomial Interpolation: lagrange: 12.3
        Least Squares Fit of a Descending Polynomial to Data: polyfit: 12.4
        Smoothing Splines Of Arbitrary Order And Dimension: smospl: 12.5
        Compute Cubic Spline Coefficients: cubespl: 12.6
        Evaluate A Cubic Spline: cubeval: 12.7
        Two Dimensional Piecewise Bilinear Interpolation: interp2: 12.8
        Two Dimensional Piecewise Bilinear Interpolation (Mlmode): mlmode_interp2: 12.9
        Newton's Method For Multiple Nonlinear Equations In One Variable: snewton: 12.10
        Brent's Method for Multiple Nonlinear Equations Without Derivatives: brent: 12.11
        Singular Linear Least Squares: linlsq: 12.12
        Linear Least Squares With Box Constraints: linlsqb: 12.13
        Nonlinear Least Squares: nlsq: 12.14
        Nonlinear Least Squares With Derivatives: dnlsq: 12.15
        Nonlinear least Squares With Box Constraints: nlsqbox: 12.16
        Nonlinear Least Squares With Box Constraints and Derivatives: dnlsqb: 12.17
        Optimization Without Derivatives Using Conjugate Directions: conjdir: 12.18
        Optimization Using the Nelder Mead Simplex Method: neldermead: 12.19
        Optimization Using The Conjugate Gradient Method: conjgrad: 12.20
        Minimization Along A Direction In A Vector Space: minline: 12.21
        Solving Linear Complementarity Problems: lemke: 12.22
        Quadratic Programming with Inequality and Positive Constraints: Qpos: 12.23
        Quadratic Programming with Inequality and Box Constraints: Qbox: 12.24
        Quadratic Programming with Equality and Inequality Constraints: Qpro: 12.25
        Nonlinear Constrained Optimization by Successive Quadratic Programming: sqp: 12.26
        Extended Least Squares: relative: 12.27
        Forward Difference Derivative Approximation: fordiff: 12.28
        Central Difference Derivative Approximation: cendiff: 12.29
        Numerical Derivatives With Automatic Step Size Control: autodiff: 12.30
        Testing Calculation of The Derivative of a Function: testder: 12.31
        Testing Calculation of The Gradient of a Function: testgrad: 12.32
        Testing Calculation of The Hessian of a Function: testhess: 12.33
    FFTs, Filtering and Time Series: filtering: 13
        Fourier Transforms: fourier: 13.1
            The Discrete Fourier Transform: dft: 13.1.1
            The Inverse Discrete Fourier Transform: idft: 13.1.2
            The Centered Finite Fourier Transform: fft: 13.1.3
            The Centered Finite Inverse Fourier Transform: ifft: 13.1.4
            Forward Fourier Transform of a Double-Precision Vector: dbldft: 13.1.5
            Inverse Fourier Transform of a Double-Precision Vector: idbldft: 13.1.6
            The Unevenly Spaced Lomb-Fourier Transform: lombft: 13.1.7
            Two Dimensional Fourier Transform: fft2d: 13.1.8
            Two Dimensional Inverse Fourier Transform: ifft2d: 13.1.9
            Two Dimensional Discrete Fourier Transform: dft2d: 13.1.10
            Two Dimensional Inverse Discrete Fourier Transform: idft2d: 13.1.11
            Circular Shift That Centers a Discrete Fourier Transform: fftshift: 13.1.12
        Kalman-Bucy Filtering and Smoothing: kalman_bucy: 13.2
            Advancing A Linear Kalman-Bucy Filter One Step At a Time: kalman: 13.2.1
            Nonlinear Kalman-Bucy Filtering And Smoothing: itrsmo: 13.2.2
            The Affine Kalman Bucy Smoother and Marginal Likelihood: AffineKbs: 13.2.3
        Auto-Regressive And Moving Average Filtering: filter: 13.3
        Auto-Regressive And Moving Average Filtering (Mlmode): mlmode_filter: 13.4
        Simulating An AR Process With A Specified Covariance: arcov: 13.5
        Estimating The Fourier Spectrum Of A Random Process: fspec: 13.6
        Discrete Prolate Spheroidal Sequences: dpss: 13.7
        Computing The Wavelet Transform: wavelet: 13.8
        Inverse Wavelet Transform: iwavelet: 13.9
        Normalized Butterworth Filter Polynomials: fnbut: 13.10
        Normalized Chebyshev Filter Polynomials: fncheb: 13.11
        Poles Of A Normalized Butterworth Filter: fnbpole: 13.12
        Poles Of A Normalized Chebyshev Filter: fncpole: 13.13
        Converting From A Normalized To Continuous Bandpass Filter: fn2cbp: 13.14
        Converting From A Normalized To Continuous Lowpass Filter: fn2clp: 13.15
        Converting From A Continuous To Digital Filter: fc2dig: 13.16
        Converting From A Normalized To Digital Bandpass Filter: fn2dbp: 13.17
        Converting From A Normalized To Digital LowPass Filter: fn2dlp: 13.18
    Statistics and Statistical Distributions: statistics: 14
        Percentiles of Each Column: prctile: 14.1
        Compute Tail Probabilities For An F-Statistic: ftail: 14.2
        The Probability Density For A T-statistic: tpdf: 14.3
        Tail Probability Of A T-Statistic: ttail: 14.4
        Inverse Of The Cumulative Distribution For T-Statistic: ittail: 14.5
        The Cumulative Normal Distribution Function: cnormal: 14.6
        Inverse Of The Cumulative Normal Distribution Function: inormal: 14.7
        Generating Uniformly Distributed Pseudo Random Numbers: rand: 14.8
        Generating Normally Distributed Pseudo Random Numbers: snormal: 14.9
        Seeding Pseudo Random Number Generation: seed: 14.10
        Computing The Mean Absolute Deviation Of Each Column: colmad: 14.11
        Computing The Mean Squared Deviation Of Each Column: colmse: 14.12
        Computing The Range of Data for Each Column: colrange: 14.13
        Computing The Mode of Each Column: colmode: 14.14
        Computing The Kurtosis of Each Column: kurtosis: 14.15
        Computing The Skewness of Each Column: skewness: 14.16
        Generating a Random Permutation: randperm: 14.17
        Using Time To Seed Random Number Generation: ranseed: 14.18
        Simulating a Mean Zero Variance One Uniform Random Variable: unifm0v1: 14.19
        Generating Random Numbers with Uniform Distribution: unirnd: 14.20
        Generating Random Numbers with Normal Distribution: normrnd: 14.21
        Generating Random Numbers with Exponential Distribution: exprnd: 14.22
        Generating Random Numbers with Gamma Distribution: gamrnd: 14.23
        Generating Random Numbers with Cauchy Distribution: cauchyrnd: 14.24
        Generating Random Numbers with Gumbel Distribution: gumbelrnd: 14.25
        Generating Random Numbers with Laplace Distribution: laplacernd: 14.26
        Generating Random Numbers with Log Normal Distribution: lognrnd: 14.27
        Generating Random Numbers with Weibull Distribution: wblrnd: 14.28
        Generating Random Numbers with Binomial Distribution: binornd: 14.29
        Generating Random Numbers with Poisson Distribution: poissrnd: 14.30
        Exponential Probability Density Function: exppdf: 14.31
        Exponential Cumulative Distribution Function: expcdf: 14.32
        Normal Probability Density Function: normpdf: 14.33
        Uniform Probability Density Function: unifpdf: 14.34
        Uniform Cumulative Distribution Function: unifcdf: 14.35
        Weibull Probability Density Function: wblpdf: 14.36
        Weibull Cumulative Density Function: wblcdf: 14.37
        Correlation Coefficients Between Columns Of A Matrix: colcor: 14.38
        Covariance Between Columns Of A Matrix: colcov: 14.39
        Computing The Mean Of Each Column: colmean: 14.40
        Computing the Standard Deviation of Each Column: colstd: 14.41
        Determining The Maximum Element In Each Column: colmax: 14.42
        Determining The Maximum Element In Each Row: rowmax: 14.43
        Computing The Sum Of Each Column: colsum: 14.44
        Computing The Sum Of Each Row: rowsum: 14.45
        Computing The Norm Of Each Column: colnorm: 14.46
        Computing The Euclidean Norm Of Each Row Of A Matrix: rownorm: 14.47
        Computing The Median: median: 14.48
        Computing The Median of Each Column: colmedian: 14.49
        Computing The Median Absolute Deviation of Each Column: colmead: 14.50
        Computing the Variance of Each Column: colvar: 14.51
        Column-wise Correlation Of Matrices Using FFT: corr: 14.52
        Column-wise Convolution Of Matrices Using FFT: conv: 14.53
        Two Dimensional Convolution Of Matrices Using FFT: conv2: 14.54
        Sum of Elements of a Matrix: sum: 14.55
        Running Cumulative Sum of Elements of a Matrix: cumsum: 14.56
        Product of Elements of a Matrix: prod: 14.57
        Running Cumulative Product of Elements of a Matrix: cumprod: 14.58
    Special Functions: special: 15
        The Error Function: erf: 15.1
        The Inverse Error Function: ierf: 15.2
        The Complementary Error Function: erfc: 15.3
        The Beta Function: beta: 15.4
        The Incomplete Beta Function: betai: 15.5
        The Gamma Function: gamma: 15.6
        The Logarithm Of The Gamma Function: gammln: 15.7
        The Incomplete Gamma Function: gammainc: 15.8
        The Jn Bessel Function: besselj: 15.9
        The Yn Bessel Function: bessely: 15.10
        The In Bessel Function: besseli: 15.11
        The Kn Bessel Function: besselk: 15.12
        Carlson's Elliptic Integrals of the First Kind: elliprf: 15.13
        Carlson's Elliptic Integrals of the Second Kind: elliprd: 15.14
        Carlson's Elliptic Integrals of the Third Kind: elliprj: 15.15
        Legendre's Elliptic Integrals of the First Kind: ellipf: 15.16
        Legendre's Elliptic Integrals of the Second Kind: ellipe: 15.17
        Legendre's Elliptic Integrals of the Third Kind: ellipi: 15.18
        Kolmogorov-Smirnov Test: kolsmi: 15.19
        Psi (digamma) Function: psi: 15.20
        Lentz's Method For Evaluating Continued Fractions: lentz: 15.21
    Integration And Differential Equations: integration: 16
        Trapezoidal Approximation for Integrals: trapz: 16.1
        Fifth Order Gaussian Quadrature Numerical Integration: gaussq: 16.2
        Two Dimensional Integration Using Gauss-Legendre Quadrature: quad2d: 16.3
        Two Dimensional Gaussian Quadrature Integration: gaussq2d: 16.4
        Computing Gauss-Legendre Quadrature Weights: gaussleg: 16.5
        Gauss-Legendre Quadrature Integration: quadint: 16.6
        Numerical Integration to Infinity: int2inf: 16.7
        A Fourth Order Runge-Kutta ODE Solver: ode4rk: 16.8
        Exponential Of A Matrix: expmat: 16.9
        Fifth Order Runge-Kutta Method With Fourth Order Error Control: ode45rk: 16.10
        Solving An ODE Using The Matrix Exponential: odepade: 16.11
        Solving Stiff Ordinary Differential Equations: odestiff: 16.12
    Polynomials: polynomial: 17
        Displaying A Polynomial: pol2asc: 17.1
        Evaluating A Polynomial: polval: 17.2
        Evaluating A Descending Polynomial: polyval: 17.3
        Evaluating A Descending Polynomial Using Matrix Multiplication: polyvalm: 17.4
        Adding Polynomials: poladd: 17.5
        Polynomial Multiplication: polmul: 17.6
        Composition Of Polynomials As Functions: polcomp: 17.7
        Computing the Derivative of a Polynomial: polder: 17.8
        Converting A Set Of Roots To A Polynomial: zero2pol: 17.9
        Finding Roots of a Descending Polynomial: roots: 17.10
        Converting A Set Of Roots To A Descending Polynomial: poly: 17.11
        Using Laguerre's Method to Find The Roots of a Polynomial: pol2zero: 17.12
        Computing Chebyshev Polynomial Coefficients: polcheb: 17.13
        Remove Leading Zero Coefficients from a Descending Polynomial: polyreduce: 17.14
        Convolution of Vectors (Mlmode): mlmode_conv: 17.15
        Deconvolution or Descending Polynomial Division: deconv: 17.16
        Calculate the Residues for a Rational Function in Complex Plane: residue: 17.17
        Compute the companion matrix corresponding to polynomial: compan: 17.18
        Evaluating A Multiple Dimension Monomial And Its Derivatives: monomial: 17.19
    Graphical User Interface Programming: gui: 18
        Opening A File Using The System Browser Dialog: openfile: 18.1
        Saving A File Using The System Browser Dialog: savefile: 18.2
        Obtaining A Text String Using The Input Dialog: input: 18.3
        Putting A Prompt In The Input Dialog: input1: 18.4
        Entering Passwords In The Input Dialog: input2: 18.5
        Dialog For Choosing File Names: chfile: 18.6
        Posting a Dialog With an Error Message: errordlg: 18.7
        Displaying Program Status in a Dialog: status: 18.8
        An Easy to Use General Purpose Dialog Routine: easydlg: 18.9
            Easy Dialog Caption and Button Arguments: easydlg2: 18.9.1
            Easy Dialog Message Argument: easydlg3: 18.9.2
            Easy Dialog Layout Argument: easydlg4: 18.9.3
                Easy Dialog Text Fields: easydlg_textfield: 18.9.3.1
                Easy Dialog Label Fields: easydlg_label: 18.9.3.2
                Easy Dialog Check Box Fields: easydlg_checkbox: 18.9.3.3
                Easy Dialog Popup Menu Fields: easydlg_popupmenu: 18.9.3.4
                Easy Dialog Slider Fields: easydlg_slider: 18.9.3.5
                Easy Dialog Spinbox Fields: easydlg_spinbox: 18.9.3.6
                Easy Dialog Label Button Fields: easydlg_labelbutton: 18.9.3.7
                Easy Dialog Text Button Fields: easydlg_textbutton: 18.9.3.8
            Easy Dialog Connection Argument: easydlg5: 18.9.4
                Enable Easy Dialog Fields on True: easydlg_enable: 18.9.4.1
                Disable Easy Dialog Fields on True: easydlg_disable: 18.9.4.2
                Easy Dialog Radio Buttons: easydlg_radio: 18.9.4.3
            Easy Dialog First Argument: easydlg1: 18.9.5
                Easy Dialog Dismiss Option: easydlg1_dismiss: 18.9.5.1
                Easy Dialog Enable Option: easydlg1_enable: 18.9.5.2
                Easy Dialog Disable Option: easydlg1_disable: 18.9.5.3
                Easy Dialog Setvalue Option: easydlg1_setvalue: 18.9.5.4
            A Complex Easy Dialog Example: easydlg_example: 18.9.6
        Adding Items To The Tools Menu: addmenu: 18.10
        Creating A New Editor Window: addeditor: 18.11
        Getting The Contents Of An Editor Window: geteditor: 18.12
        Creating A New Table Window: addtable: 18.13
        Getting The Values In a Table: gettable: 18.14
        Determining Which Cells Are Selected In A Table: getcells: 18.15
        Changing The Value In Cells Of A Table: setcells: 18.16
        Creating A New Dialog Window: adddialog: 18.17
        Determining The Size Of The Screen In Pixels: getscreen: 18.18
        Determining The Current Size Of The O-Matrix Main Window: getvisible: 18.19
        Getting and Setting a Window's Geometry: windowgeometry: 18.20
        Creating and Using Controls In a Dialog Window: controls: 18.21
            Using Push Buttons In A Dialog Window: pushbutton: 18.21.1
            Using Text Labels In A Dialog Window: addlabel: 18.21.2
            Using Text Input Fields In A Dialog Window: textfield: 18.21.3
            Using Radio Buttons In A Dialog Window: radiobuttons: 18.21.4
            Using A Check Box In A Dialog Window: checkbox: 18.21.5
            Using A Multi-Selection List In A Dialog Window: multilist: 18.21.6
            Using A List Box In A Dialog Window: listbox: 18.21.7
            Using A Popup Menu In A Dialog Window: popupmenu: 18.21.8
            Using A Slider In A Dialog Window: slider: 18.21.9
            Using A Bit Map In A Dialog Window: bitmap: 18.21.10
        Deleting A Window: delwin: 18.22
        Iconifying A Window: iconify: 18.23
        Determining If A Window Is Iconified: isicon: 18.24
        Hiding A Window Or Disabling A Control: hide: 18.25
        Normalizing A Window Or Enabling A Control: show: 18.26
        Setting the O-Matrix Application Caption: caption: 18.27
        Graphical User Interface Size Parameters: guisize: 18.28
            Determining The Size of Text In a Dialog Window: textsize: 18.28.1
            Determining the Size of a Dialog's Border: bordersize: 18.28.2
            Determining Width of Window Controls on Caption Bar: wincontrolwidth: 18.28.3
            Determine the Extra Space Needed for a Text Field: textfieldspace: 18.28.4
            Determine the Extra Space Needed for a Popup Menu: popupspace: 18.28.5
            Determine the Extra Width Needed for Radio Buttons: radiowidth: 18.28.6
    Other Advanced Functions: advanced: 19
        Vector And Matrix Norms: normfunction: 19.1
        Source Code Search Path: path: 19.2
        Determine if an Identifier is Defined in Current Environment: defined: 19.3
        Listing Variables Defined in The Current Environment: variables: 19.4
        Using the Standard O-Matrix Error Dialog: error: 19.5
        Trapping O-Matrix Errors Under Program Control: errortrap: 19.6
        Invoking Help From Within An O-Matrix Program: help: 19.7
        Loading and Saving Work Space: loadsave: 19.8
        Garbage Collection of System Allocated Memory: garbage: 19.9
        Evaluating a Character Matrix: eval: 19.10
        Delayed Execution of Commands in a Matrix: execmat: 19.11
        Including A File During Program Execution: execfile: 19.12
        Converting Values To Ascii Using C Language Formatting: sprintf: 19.13
        Setting Response Time During Execution: interrupt: 19.14
        Running All the Files in a Directory: runall: 19.15
        Print the Differences Between Ascii Files: filediff: 19.16
        Comparing And Updating Source Files: update: 19.17
    O-Matrix Code Debugger: debugger: 20
        Quitting Execution From Within The Debugger: quit: 20.1
        Listing Included Files: dbinclude: 20.2
        Listing Active Variables in The Current Environment: active: 20.3
        Exiting The Debugger And Continuing Execution: continue: 20.4
        Deleting All Break and Watch Points: dall: 20.5
        Setting And Listing Debugger Break Points: debug_break: 20.6
        Skipping Breakpoints: skip: 20.7
        Deleting Breakpoints: dbreak: 20.8
        Setting Debugger Listing and Environment File: dbfile: 20.9
        Displaying The Environment Call Stack: env: 20.10
        Setting The Current Debugger Environment: env1: 20.11
        Changing Output Format From Within the Debugger: dbformat: 20.12
        Creating Global Variables From Temporary Ones: dbglobal: 20.13
        Listing Lines In The Current Debugger File: list: 20.14
        Stepping Over Function Calls: next: 20.15
        Determining What Files Are Open: open: 20.16
        Print Values Inside the Debugger: dbprint: 20.17
        Clearing the Debugger Window: dbhome: 20.18
        Stepping Into Function Calls: step: 20.19
        Line By Line Tracing Of Execution: dbtrace: 20.20
        Listing The User Defined Functions: user: 20.21
        Creating And Listing Watch Points: watch: 20.22
        Listing And Deleting Watch Points: dwatch: 20.23
        Determine What An Identifier Refers To: which: 20.24
    Linking With Other Languages, Programs and COM Components: linking: 21
        Using O-Matrix as a COM Automation Client: comautomation: 21.1
            Creating a Connection to a COM/Automation Server: cocreate: 21.1.1
            Releasing a COM/Automation Server Connection: corelease: 21.1.2
            Setting a COM object: cowith: 21.1.3
            Releasing a COM object: coendwith: 21.1.4
            Setting a Property in the Current COM object: copropput: 21.1.5
            Getting a Property of the Current COM object: copropget: 21.1.6
            Invoking a COM Server Method: coinvoke: 21.1.7
            Setting Variable as Variant: covariant: 21.1.8
            Saving a COM Server Dispatch Pointer: codispsave: 21.1.9
            Setting the IDispatch Pointer of a COM Object: codispset: 21.1.10
            Displaying the Status of a COM connection: costats: 21.1.11
        Creating O-Matrix DLL Functions: dllall: 21.2
            Linking A Compiled Function: linkdll: 21.2.1
            Writing An O-Matrix DLL Function in C++: dll: 21.2.2
            C Structure That Defines A Matrix: matrix: 21.2.3
            A DLL That Computes The Maximum Of Each Column: mycolmax: 21.2.4
            A DLL That Computes The Maximum Of Each Row: myrowmax: 21.2.5
        Transferring Data To The System Clipboard: copy: 21.3
        Transferring Data From The System Clipboard: paste: 21.4
        Using DDE to Communicate with other Programs: omlink: 21.5
        Creating an OMDDE Client: omclient: 21.6
            Number of Bytes Per Matrix Element: omsize: 21.6.1
            Initializing and Terminating OMDDE Communication: omddeini: 21.6.2
            Connecting an OMDDE Client To a Server: omclicon: 21.6.3
            Disconnecting an OMDDE Client From a Server: omclidis: 21.6.4
            Transferring Commands From OMDDE Client to Server: omclicmd: 21.6.5
            Transferring Data From OMDDE Client to Server: omcliput: 21.6.6
            Getting Data Sent to an OMDDE Client: omcliget: 21.6.7
        Creating an OMDDE Server: omserver: 21.7
            Windows Main Program for Server Examples: winmain: 21.7.1
            Setting the Name of an OMDDE Server: omserreg: 21.7.2
            Receiving Commands From an OMDDE Client: omsercmd: 21.7.3
            Outputting Data From an OMDDE Server: omserout: 21.7.4
            Getting Data Sent to an OMDDE Server: omserinp: 21.7.5
    The O-Matrix Development Kit: omrte: 22
    Appendix: appendix: 23
        AUTOEXEC.OMS - Automatically Executed Commands and Defined Constants: autoexec: 23.1
        Using Multiple CPUs: multicpus: 23.2
        ASCII CHART: ascii: 23.3
        Reports On Allocated Memory Usage: memory: 23.4
        Short Hand For Functions With String Arguments: stringarg: 23.5
        Alphabetic Listing Of Keywords: keyword: 23.6
        Tokens That Are Not Keywords Or Intrinsic Functions: token: 23.7
        Formal Syntax: bnf: 23.8
        O-Matrix Light: omatrixlight: 23.9
            Introduction to O-Matrix Light: lightintro: 23.9.1
            O-Matrix Light Restrictions: lightrestrictions: 23.9.2
                Executing Large Programs Using O-Matrix Light: lightexe: 23.9.2.1
            O-Matrix Light Version License: lightlicense: 23.9.3
        The O-Matrix Virtual Machine: omvm: 23.10
        Creating an O-Matrix Binary Pcode Distribution: ompcode: 23.11
        The O-Matrix Virtual Machine Application Launcher: vmlauncher: 23.12
        The O-Matrix License File: omlic: 23.13
        O-Matrix Development Kit License: developerlicense: 23.14
    Mlmode: MATLAB® Compatibility: mlmode: 24
        Switching Between Mlmode And O-Matrix Mode: mlmode_mode: 24.1
        Differences Between The Mlmode and O-Matrix Languages: mlmode_language: 24.2
            Assignment Statements (Mlmode): mlmode_assignment: 24.2.1
            Multiple Statements in Same Line: multiplestatement: 24.2.2
            Different Syntax with Same Meaning in Mlmode and O-Matrix Mode: mlmode_same: 24.2.3
            If Statement (Mlmode): mlmode_if: 24.2.4
            For Statement (Mlmode): mlmode_for: 24.2.5
            While Statement (Mlmode): mlmode_while: 24.2.6
            The Colon Operator (Mlmode): mlmode_colon: 24.2.7
            Precision of Input Numeric Values (Mlmode): mlmode_numbers: 24.2.8
            Building Matrices (Mlmode): mlmode_building: 24.2.9
            Binary Operators and Character Matrices (Mlmode): mlmode_character: 24.2.10
            Single Quote Character (Mlmode): mlmode_quote: 24.2.11
            The Right Matrix Divide Operator (Mlmode): mlmode_matrixdivision: 24.2.12
            Logical Operators (Mlmode): mlmode_logicalop: 24.2.13
            Numeric Operators (Mlmode): mlmode_numericop: 24.2.14
            Complex Operations only using Real Part (Mlmode): mlmode_realpart: 24.2.15
            Using a Matrix as an Index (Mlmode): mlmode_matrixindex: 24.2.16
            Logical Indices (Mlmode): mlmode_logicalindex: 24.2.17
            Automatic Growing of Matrices on Assignment (Mlmode): mlmode_grow: 24.2.18
        Script Files (Mlmode): mlmode_script: 24.3
        User Defined Functions (Mlmode): mlmode_function: 24.4
        Automatically Executed Command File (Mlmode): mlmode_autoexec: 24.5
        Keywords (Mlmode): mlmode_keyword: 24.6
        Intrinsic Functions (Mlmode): mlmode_intrinsic: 24.7
            Converting to a Character Matrix (Mlmode): mlmode_setstr: 24.7.1
            Checking If Two Character Matrices are Equal (Mlmode): mlmode_strcmp: 24.7.2
            Creating a Matrix of Ones (Mlmode): mlmode_ones: 24.7.3
            Creating a Matrix of Zeros (Mlmode): mlmode_zeros: 24.7.4
            Determining the Maximum Dimension (Mlmode): mlmode_length: 24.7.5
            Square Root of Minus One (Mlmode): mlmode_ij: 24.7.6
            Plus Infinity (Mlmode): mlmode_inf: 24.7.7
            Some Predefined Constants (Mlmode): mlmode_nan: 24.7.8
            Obtaining a Copy of the Identity Matrix (Mlmode): mlmode_eye: 24.7.9
            Determine if an Identifier is Defined (Mlmode): mlmode_exist: 24.7.10
            Double Precision Machine Epsilon (Mlmode): mlmode_eps: 24.7.11
            Numeric Value for Date and Time (Mlmode): mlmode_clock: 24.7.12
            Compute Type and Size Limitations: mlmode_computer: 24.7.13
            Getting And Setting The Current Working Directory (Mlmode): mlmode_cd: 24.7.14
            Determining The Date (Mlmode): mlmode_date: 24.7.15
            Maximum of a Set of Elements (Mlmode): mlmode_max: 24.7.16
            Minimum of a Set of Elements (Mlmode): mlmode_min: 24.7.17
        M-File Functions (Mlmode): mlmode_mfile: 24.8
            Computing The Mean (Mlmode): mlmode_mean: 24.8.1
            Computing The Standard Deviation (Mlmode): mlmode_std: 24.8.2
            Legendre's Complete Elliptic Integrals (Mlmode): mlmode_ellipke: 24.8.3
            Displaying A Value (Mlmode): mlmode_disp: 24.8.4
            Displaying A Warning (Mlmode): mlmode_warning: 24.8.5
            Left Justify a Sequence of Strings in a Single Matrix (Mlmode): str2mat: 24.8.6
            Converting to Integer Ascii Representation (Mlmode): int2str: 24.8.7
            Contour Plots (Mlmode): mlmode_contour: 24.8.8
            Mesh Plots (Mlmode): mlmode_mesh: 24.8.9
            Combined Mesh and Contour Plots (Mlmode): mlmode_meshc: 24.8.10
            Surface Plots (Mlmode): mlmode_surf: 24.8.11
            Combined Surface and Contour Plots (Mlmode): mlmode_surfc: 24.8.12
            X and Y Grids for Contour and Mesh Plots (Mlmode): mlmode_meshgrid: 24.8.13
            Elapsed Time Corresponding to Clock Values (Mlmode): mlmode_etime: 24.8.14
            Determines Which Elements are Finite (Mlmode): mlmode_finite: 24.8.15
            Returns a Non-Sparse Version of a Matrix (Mlmode): mlmode_full: 24.8.16
            Does This Computer Support IEEE Arithmetic (Mlmode): mlmode_isieee: 24.8.17
            Returns True for Unix Systems (Mlmode): mlmode_isunix: 24.8.18
            Is a Matrix Sparse (Mlmode): mlmode_issparse: 24.8.19
            Is a Matrix of Type Character (Mlmode): mlmode_isstr: 24.8.20
        O-Matrix Routine For Missing Mlmode Functions: mismatfun: 24.9
        Differences Between MATLAB® and Mlmode Languages: mlmode_diff: 24.10
    Glossary: glossary: 25
    Alphabetic Listing of Cross Reference Tags: _reference: 26
    Keyword Index: _index: 27

2: Getting Started

2.a: Contents
Readme File for O-Matrix Version 6.3: 2.1
About O-Matrix: 2.2
Starting O-Matrix: 2.3
Example Navigator: 2.4
The O-Matrix User Interface: 2.5
The O-Matrix Help System: 2.6
Customizing the Initial State of O-Matrix: 2.7
Finding Text in Files: 2.8
Exiting O-Matrix: 2.9
O-Matrix Tutorial: 2.10
Interactive GUI Tools: 2.11

2.1: Readme File for O-Matrix Version 6.3
Harmonic Software Inc. Sept 19, 2007

2.1.a: Support
If you have suggestions, comments or questions using O-Matrix please contact us:
Company: Harmonic Software Inc.
Address: PO Box 7365, Breckenridge, CO 80424
e-mail: support@omatrix.com
web: http://www.omatrix.com

2.1.b: O-Matrix Version 6.3 Enhancements
Additions and enhancements were made to support the newly released "Image Processing Toolbox for O-Matrix".

2.1.c: O-Matrix Version 6.2 Enhancements
O-Matrix can now be used as a client with the Tecplot Visualization Environment: 9.6 . Functions have been added for transferring data to and from Tecplot, manipulating Tecplot data sets, and rendering graphs in Tecplot of O-Matrix data and results. Use of the O-Matrix functions that communicate data, commands, and plot instructions to Tecplot require that the omlink.dll Tecplot add on be installed with Tecplot. To install this add on copy the file omlink.dll from the dll directory of your O-Matrix installation to the bin directory of your Tecplot installation. You must then add the following line to the tecplot.add file in your Tecplot home directory:
  $!Loadaddon "omlink"     # O-Matrix IPC Server

2.1.d: O-Matrix Version 6.1 Enhancements
O-Matrix 6.1 has made additional performance enhancements, especially for multi-threaded machines such as Intel HT and DuoCore technologies. As of version 6.1 O-Matrix will utilize both cores in these newer processors but requires that your environment be configured. See the Using Multiple CPUs: 23.2 chapter for details. See the updated benchmark results at: http://www.omatrix.com/bench.html .

2.1.e: O-Matrix Install Directory
The default location for the O-Matrix install directory is c:\omwin. If you installed O-Matrix to a different directory, use that directory where ever c:\omwin is referenced. The following is a list of the items contained in the O-Matrix installation directory:
Directory Description
DEVKIT Tools, documentation, and examples of building re-distributable O-Matrix applications. (Available with the O-Matrix Development Kit (http://www.omatrix.com/omrte.html) license.)
DLL O-Matrix DLL functions: 21.2.1
EXAMPLE Numerous in-depth examples. See the O-Matrix Example Navigator: 2.4 .
FUNCTION O-Matrix *.oms function files
HTM Documentation directory in HTML format
IPACKS Installation directory for the SigmaPlot Interface Toolbox (http://www.omatrix.com/splink.html) and other third party products.
LIB Additional O-Matrix *.oms files
LPSOLVE Documentation and examples of using the lpSolve (http://www.omatrix.com/lpsolve.html) linear programming tools with O-Matrix
MATHLIBS Architecture-specific run time support libraries for numerical functions.
OCTAVE Supplemental mlmode: 24 *.m files that enable O-Matrix to provide additional Matlab compatibility. These files must be installed after O-Matrix. The Matlab Compatibility Library is provided as a separate setup program with your order, or may be downloaded from the O-Matrix Addons Page (http://www.omatrix.com/omaddons.html)
OMDDE Example of using Windows DDE for connecting with other processes
PROGRAMS Can be used for storing user programs. Also used to store samples installed by the O-Matrix Development Kit (http://www.omatrix.com/omrte.html)
STSA Installation directory for the O-Matrix Time Series Toolbox (http://www.omatrix.com/stsa.html)
TECPLOT Functions for communicating with, and creating plots in Tecplot: 9.6 .
TEST System and O-Matrix diagnostic tools
TOOLBOX O-Matrix *.oms and mlmode: 24 *.m files
TOOLS GUI Tools for common O-Matrix tasks
File Description
autoexec.m File included whenever mlmode: 24 is cleared
autoexec.oms Startup File: 23.1 that is run, or included whenever O-Matrix is started or cleared: 3.2
omwin.exe O-Matrix executable program



2.2: About O-Matrix


2.2.a: Overview
O-Matrix is a complete, analysis and visualization environment for scientists, engineers, numerical analysts, students, and anyone performing numerical or visual oriented data analysis or modelling. Development in O-Matrix is a time and cost saving alternative to programming in compiled languages such as C or FORTRAN. Analysis and development efforts can be performed in a fraction of the time required using traditional languages or typical integrated mathematics tools.

2.2.b: The benefits you will find working with O-Matrix include:

O-Matrix is both an environment and a language for technical computing: With O-Matrix you can both interactively explore, view and analyze data and develop sophisticated stand-alone applications.

The O-Matrix language reflects the language of mathematical analysis: The syntax of the matrix-based language in O-Matrix closely resembles the mathematical notation you would use for prototyping algorithms. Solutions can be compactly represented in a a clear and easy-to-understand form.

High performance is built in: O-Matrix was designed from the ground up to provide high performance for solving large, numerically intensive problems. Built in functions are written in optimized assembly and FORTRAN code to provide throughput that is often comparable to, or exceeds traditional compiled languages. O-Matrix is threaded and will take advantage of multi core CPUs and machines with multiple CPUs. See the Multiple CPUs: 23.2 chapter for details on configuring your environment for threading.

Visualization from understanding to presentation: The graphics capabilities in O-Matrix are easy-to-use for rapid data exploration but powerful and flexible enough for generating graphics presentations or exporting to other report generation applications.

Building on foundation algorithms enables robust, accurate applications: O-Matrix includes a broad range of numerical and statistical analysis routines based on algorithms from experts in numerical analysis. These functions have been implemented with extensive testing and validation which frees O-Matrix users from programming details typically found when developing numerical algorithms from scratch.

Extensibility leverages solutions and applications: A Platform for Turnkey Solutions: Using the O-Matrix Development Kit: 22 and O-Matrix Virtual Machine, finished solutions can be easily distributed to other users without royalty fees or additional licenses.

MATLAB® Language Support in O-Matrix The O-Matrix environment provides support for both the O-Matrix language and the MATLAB language. This feature is described in the section Mlmode: MATLAB® Compatibility: 24.
2.3: Starting O-Matrix
Syntax c:\omwin\omwin.exe
c:\omwin\omwin.exe StartupFile
c:\omwin\omwin.exe "StartupFileInstallDir

2.3.a: Description
The commands listed above start the O-Matrix program. They can be executed from the windows Start button, from the Target field of the Shortcut tab of the Properties of a windows icon, or at the Microsoft DOS command line. The directory c:\omwin is the directory where O-Matrix is installed and may be different for your machine.

2.3.b: O-Matrix Interface
The O-Matrix interface contains the following main regions:
The Command Line: 2.5.1
The O-Matrix Menu Bar: 2.5.5
The O-Matrix Toolbar: 2.5.6
The Command Window: 2.5.2
The Debugger Window: 2.5.4
Graphics Windows: 2.5.3
Editor Windows: 2.5.7


The three windows entitled Command, Debugger, and Graphic 0 can not be closed, but any of them can be minimized, maximized, moved, or resized by using the standard Windows techniques. (The Debugger and Graphic 0 windows are minimized in the picture above.) Although none appear when O-Matrix is first executed, you can open and close Editor windows.

2.3.c: Example
If from the window Start button you select Run... and then enter
     c:\omwin\omwin.exe
The O-Matrix interface will start up.

2.3.d: Command Line Arguments
StartupFile
is a specification for an O-Matrix source code file. If StartupFile includes a complete path, the current directory is set to the directory in StartupFile. Then the file specified by StartupFile is executed by O-Matrix.

InstallDir
specifies an alternative directory where O-Matrix is installed. This is useful if you have multiple versions of O-Matrix installed because it enables you to specify a different installation directory for each one. Note that if InstallDir is present, StartupFile must be enclosed in double quotes. You can specify an installation directory without a start up file, by making the start up file name empty; i.e., by using the syntax
     c:\omwin\omwin.exe " " 
InstallDir

2.3.d.a: Example
If the file c:\omwin\programs\temp.oms contains
     print "Hello World"
and from the window Start button you select Run... and then enter
     c:\omwin\omwin.exe c:\omwin\programs\temp.oms
O-Matrix will start up and then print
     Hello World

2.4: Example Navigator
The Example Navigator is a dialog-based utility for navigating, running, and viewing O-Matrix examples. In O-Matrix Light the navigator will start automatically, but can also be invoked from the "Tools" menu.

Each example in the navigator corresponds to an O-Matrix script file in the omwin\example directory. You can run individual examples from the command line by entering

include example\<example directory>\<example name>

For example, if you enter
include example\demo\rosen.oms
at the command prompt, O-Matrix will run the Rosenbrock's example. Alternatively, examples can be run by selecting "File | Run" from the main menu and browsing to the desired example.

The samples in the Example Navigator are designed to illustrate O-Matrix usage for typical applications and provide templates for specialized uses. More simple and concise examples of O-Matrix functions are provided with the online documentation for individual functions and features. See the O-Matrix Tutorial: 2.10 for a detailed walk though of O-Matrix concepts.

The Example Navigator is built using the O-Matrix GUI Building Tools: 18 . Source code for the GUI is available in the example\examples.oms file.


2.5: The O-Matrix User Interface
The O-Matrix interface provides many elements to help develop and run data analysis and visualization solutions. The following sections provide an overview of the primary interface components.

2.5.a: Contents
cmdline: 2.5.1The Command Line
commandio: 2.5.2The Command Window
graphicio: 2.5.3Graphics Windows
debugio: 2.5.4The Debugger Window
menubar: 2.5.5The O-Matrix Menu Bar
omtoolbar: 2.5.6The O-Matrix Toolbar
editorio: 2.5.7Editor Windows

2.5.1: The Command Line


2.5.1.a: Description
Commands can be entered in O-Matrix by typing them directly in the box to the right of the prompt button, which is the right most button below the menu at the top of the screen. If the prompt button displays the blue O>: 25.z prompt, commands entered will be echoed in the Command window: 2.5.2 . If the prompt button shows the red DEBUG>: 25.k prompt, commands will be echoed in the Debugger window: 2.5.4 . (Clicking the button toggles it between the two prompts.)

2.5.1.b: Example
If at the O> prompt you enter
     5. / 2.
O-Matrix will respond
     2.5
in the Command window: 2.5.2 .

2.5.1.c: Editing Commands
O-Matrix keeps a list of the commands entered at the Command line during a session. The F2 function key, moves the cursor to the Command line. When the cursor is at the Command line, commands can be recalled and edited with the following special keys:
Keyboard Entry Description
UP ARROW recalls previous command in the list
DOWN ARROW recalls next command in the list
END moves cursor to end of current command
HOME moves cursor to beginning current command
ESC erases current command
LEFT ARROW moves cursor left one character
RIGHT ARROW moves cursor right one character
BACKSPACE deletes character to the left of cursor
DELETE deletes character to the right of cursor
2.5.1.d: Alternatives
Some commands can also be run by selecting them from the menu bar: 2.5.5 . In addition, the integrated O-Matrix editor: 2.5.7 can be used for entering groups of commands and for recalling scripts from disk files.
2.5.2: The Command Window

2.5.2.a: Description
The Command window displays input commands and corresponding output, where every input command is preceded by the O>: 25.z prompt.

2.5.2.b: Example
If you enter
     cos(pi)
at the O> prompt, O-Matrix will respond
     -1
in the Command window as follows:



Note that input lines in the Command window are preceded by the O> prompt.

2.5.2.c: Saving Input Commands
The commands you have typed can be saved to an ASCII text file for later use. To do this, select File | Save As from the menu, chose the Save Commands radio button, select the Select File Name button, and then choose a file name.

2.5.2.d: Saving Command Window
The current contents of the command window can also be saved to a file. To do this, select File | Save As from the menu, chose the Save Output radio button, and select the Select File Name button, and the choose a file name. Text printed in this window can also be saved using the diary: 8.20 command.
2.5.3: Graphics Windows

2.5.3.a: Description
The graphics windows display the plots created by graphics commands. Initially, only one graphics window appears, Graphic 0, but unlike the Command and Debugger windows, more graphics windows can be added by using the gaddwin: 9.1.10 command. Graphics windows can also be divided into multiple areas, called viewports: 25.ap , which allows more than one plot to occupy a single graphics window.

2.5.3.b: Example
If at the O>: 25.z prompt you enter
     ginit
     x = 0. : .1 : 2 * pi
     y = sin(x)
     gplot(x, y)
O-Matrix will draw the following plot in the Graphic 0 window:

2.5.3.c: Printing
To print the contents of the current graphics window, select the File | Print menu item, choose the Print Current Graphic radio button and then select Print.
2.5.4: The Debugger Window

2.5.4.a: Description
The debugger allows you to track code execution and variable values in an O-Matrix program. To enter the debugger, type
     stop
at the O>: 25.z prompt or select Debug | Enter Debugger from the menu. The debugger commands are listed in the Debugger: 20 section.

2.5.4.b: Example
If you enter
     cos(pi)
     stop
at the O> prompt, the Debugger window will display both this input line and the resulting output:



Note that input lines in the Debugger window are preceded by "Debug>". To return control the to O> prompt, enter cont or select the Debug | Exit Debugger menu item.

2.5.4.c: Saving Debugger Window
The current contents of the Debugger window can be saved in an ASCII text file. To do this, select the File | Save As menu item, choose the Save Debugger Output radio button, select the Select File Name button, and choose a file.

2.5.4.d: Printing Debugger Window
To print the current contents of the Debugger window, select the File | Print menu item, select the Print Debugger Output check box, and then select the Print button.

2.5.4.e: Entering Debugger Upon Errors
When O-Matrix encounters certain errors, it will give you the choice to do one of four things:
Button Action
Continue return control to O> prompt
Debug transfer control to DEBUG> prompt
Edit edit the file where the error occurred
Help obtain help related to the error
If you select Debug, you will enter the debugger with the current environment set to the place where the error occurred.
2.5.5: The O-Matrix Menu Bar


2.5.5.a: Description
The menu bar offers rapid access to many O-Matrix commands which are controlled primarily through dialogs, secondary windows that contain one or more controls for performing common operations.

2.5.5.b: File
The File menu can be used to clear the current workspace, create new editor: 2.5.7 windows, work with existing programs, manipulate files, print output, halt execution, and exiting: 2.9 O-Matrix.

2.5.5.c: Edit
The Edit menu can be used for cutting, copying, and pasting of text and graphics, editing files, and finding text in files: 2.8 .

2.5.5.d: Command
The Command menu can be used for executing some common input and output commands such as, including programs for execution and setting numeric output format. In addition, it can be used for profiling the execution speed of your O-Matrix programs.

2.5.5.e: Debug
The Debug menu can be used to access debugger: 2.5.4 commands.

2.5.5.f: Graphics
The Graphics menu can be used to access common graphics: 9.1 commands such as initializing graphics, creating new windows and viewports, manipulating plots, and modifying text.

2.5.5.g: Options
The Options: 2.7 menu is used for setting preferences at start up and exit such as initial window layout, numeric output formats, and fonts.

2.5.5.h: Window
The Window menu can be used to access windows and control their layout within the O-Matrix workspace.

2.5.5.i: Tools
The Tools menu contains items that have been added by an O-Matrix program using the addmenu: 18.10 command.

2.5.5.j: Help
The Help menu can be used to display the help that is distributed with O-Matrix and add on packages.
2.5.6: The O-Matrix Toolbar


2.5.6.a: Description
The toolbar at the top of the screen (just below the menu bar) provides access to the some of the frequently used menu items. If a tool bar icon is not available, it is grayed out. For example, the hand icon is grayed in the second version of the toolbar above. It is possible, using the hide: 18.25 command, to gray out the entire toolbar. This should only be done by an O-Matrix program that does not wish to get input from the toolbar or command line.


The first icon displays a blank sheet of paper. Selecting this icon is equivalent to the File | Edit New Program menu item. This creates a new editor window with nothing in it.


The second icon in the toolbar displays an open file folder. Selecting this icon is equivalent to the File | Open Program menu item. This starts a browser dialog in which you can select an existing file. Once you select a file, a new editor window containing the contents of the file is created.


The third icon displays a floppy disk. Selecting this icon is equivalent to the File | Save menu item. If the currently active window is an editor window, it is saved to disk. If an editor window is not active, you can also use this icon to save the contents of the Command or Debugger window windows.


The fourth icon displays a lightning bolt. If the O>: 25.z prompt is currently displayed, selecting this icon is equivalent to the File | Run Program menu item. If in addition, an editor window is currently active, the contents of the editor window will be run as an O-Matrix program. Otherwise, a browser dialog is displayed in which you can select an existing file. Once you select a file, it is run as an O-Matrix program.

If the DEBUG>: 25.k prompt is currently displayed, selecting the icon is equivalent to the Debug | Next menu item which executes one source code line in the current function.


The fifth icon displays a hand in red (when it is active). If the O-Matrix is currently running a program, selecting this icon is equivalent to the File | Halt Execution menu item. (If O-Matrix is currently running a program the word "Processing" is displayed in the status line at the bottom right of the main O-Matrix window.) In this case, selecting the icons halt program execution and returns control to the Command line: 2.5.1 .

If the DEBUG>: 25.k prompt is currently displayed, O-Matrix execution has been suspended. In this case, if an editor window is active, selecting this icon sets a debugger break: 20.6 point at the current line in the current editor window and displays the current set of break points. The line number corresponding to the break point is displayed in the status bar at the bottom right of the main O-Matrix window. If an editor is active, this line number changes whenever the cursor moves over a new editor window. For this reason, the cursor must not move over another editor window between selecting the line in the active editor and selecting the halt icon. If no editor window is active, selecting the halt icon will just display the current set of break points.




The sixth icon is either the 0>: 25.z prompt or the DEBUG>: 25.k prompt.

If the O> prompt is displayed, selecting its icon is equivalent to the Debug | Enter Debugger menu item. When the O> prompt is displayed and the hand icon is grayed out, O-Matrix is waiting for command input: 2.5.1 . When the O> prompt is displayed and the hand icon is red, O-Matrix is currently running a program. In this case, selecting its icon will suspend program execution and enter the debugger: 20 where execution can later be resumed using the Debug | Continue menu item.

If the DEBUG> prompt is displayed, selecting its icon is equivalent to the Debug | Exit Debugger menu item. When the DEBUG> prompt is displayed, O-Matrix is in waiting for a debugger: 20 command.
2.5.7: Editor Windows

2.5.7.a: Description
Editor windows function similarly to the Notepad program that is part of Microsoft Windows. You can use them to create, edit, and save ASCII text files. Because O-Matrix uses text files as its programs, you can use these editors to create such programs.

2.5.7.b: New Editor Windows
Many of the editor window functions reside under the File and Edit menu items. Selecting File | Edit New Program will bring up a window titled "Untitled". (You can also use the blank page icon discussed in the toolbar: 2.5.6 section for this purpose.)

2.5.7.c: Entering Text
Once you have opened a new editor window, you can type commands directly into the file without the immediate interpretation you would receive from the O>: 25.z prompt. For example, if you enter the following data into an editor window



O-Matrix will not execute the commands.

2.5.7.d: Executing Programs
You can execute the program with the File | Run Program menu item. If you continue the example above by selecting File | Run Program while the editor window is active, O-Matrix will ask if you wish to save the file. If you select No, O-Matrix will respond:



in the Command window. (If the Command window is covered up, you can use the Windows menu item to bring it into view. You can also use the lighting bolt icon discussed in the toolbar: 2.5.6 section to execute the current edit window.)

2.5.7.e: Saving Programs
To save this program select the File | Save As menu item, choose the Save Current Edit Window radio button, select the Select File Name button, and then choose a file name C:TEMP.OMS in the PROGRAMS subdirectory. (You can also use the floppy disk icon discussed in the toolbar: 2.5.6 section to save the current edit window.)

2.5.7.f: Editing Existing Files
You can open an existing ASCII text file by selecting the File | Open Program menu item. You can also use this option to edit any ASCII file. On the other hand, only O-Matrix programs will work correctly if you then select the File | Run Program menu item. (You can also use the file folder icon discussed in the toolbar: 2.5.6 section to open an existing file.)

2.5.7.g: Editing Functions
In any of the editor windows, the Cut, Copy, and Paste commands from the Edit window can be used, and work as they do in other Windows text editors: "Cut" removes highlighted text from the editor and places it onto the Clipboard, from which it can be retrieved with the "Paste" command. "Copy" also puts highlighted text into the Clipboard, but does not delete the text from the current editor window.

2.5.7.h: Printing
To print the contents of the current editor window, select the File | Print menu item, choose the Print Current Editor radio button, and then select Print.
2.6: The O-Matrix Help System

2.6.a: Description
O-Matrix includes a standard Windows help interface, which can be accessed through the Help menu or by entering help at the O>: 25.z prompt. All of the documentation for O-Matrix is provided in HTML format in the C:\OMWIN\HTM directory.

2.6.b: Help | Contents
This menu item sets the current page in your browser to the table of contents for the O-Matrix help system.

2.6.c: Help | Search
This menu item sets the current page in you browser to the alphabetically ordered index for the O-Matrix help system. You can use the by letter jump table or the Edit | Find in Page menu item, to find the topic you are interested in.

2.6.d: Support
Whether you are a new O-Matrix customer, a veteran user, or have just downloaded O-Matrix Light: 23.9.1 , we are dedicated to providing you responsive, professional product support. If you are unable to resolve your problem or question from the online help system you may contact us directly by e-mail, phone, fax, or mail:

      Web: http://www.omatrix.com
   E-mail: support@omatrix.com
    Address: Harmonic Software Inc.
PO Box 7365
Breckenridge, CO 80424
Attn: Product Support

2.7: Customizing the Initial State of O-Matrix

2.7.a: Options Menu
Some of the current settings can be saved and restored when O-Matrix starts up using the Options menu. When one of these options is chosen, the corresponding setting is saved in the file named om50.ini in your windows system directory. (The file c:\omwin\om50.ini is a copy of the original version of this file.) The following table lists these settings:
Option Meaning
Save Window Layout The current size and position of the Command: 2.5.2 , Debugger: 2.5.4 , and Graphic 0: 2.5.3 windows.
Save Numeric Format The current format: 8.10.1 used for printing values.
Save Fonts The current graphic: 9.2.19 fonts.
Editor font Changes the current font used in editor windows.
Save Editors on Exit If this option is checked when O-Matrix exits, all editor windows are inspected