logo资料库

Igor Pro 7 Manual-EN.pdf

第1页 / 共2358页
第2页 / 共2358页
第3页 / 共2358页
第4页 / 共2358页
第5页 / 共2358页
第6页 / 共2358页
第7页 / 共2358页
第8页 / 共2358页
资料共2358页,剩余部分请下载后查看
Table of Contents
Volume I Getting Started
Introduction to Igor Pro
Introduction to Igor Pro
Igor Objects
Waves — The Key Igor Concept
How Objects Relate
More Objects
Igor’s Toolbox
Built-In Routines
User-Defined Procedures
Igor Extensions
Igor’s User Interface
The Command Window
Menus, Dialogs and Commands
Using Igor for Heavy-Duty Jobs
Igor Documentation
Tool Tips
The Igor Help System
The Igor Manual
Learning Igor
Getting Hands-On Experience
Guided Tour of Igor Pro
Overview
Terminology
About the Tour
Guided Tour 1 - General Tour
Creating an Igor64 Alias or Shortcut
Launching Igor Pro
Entering Data
Making a Graph
Touching up a Graph
Adding a Legend
Adding a Tag
Using Preferences
Making a Page Layout
Saving Your Work - Tour 1A
Loading Data
Appending to a Graph
Offsetting a Trace
Unoffsetting a Trace
Drawing in a Graph
Making a Window Recreation Macro
Recreating the Graph
Using the Data Browser
Saving Your Work - Tour 1B
Using Igor Documentation
Graphically Editing Data
Making a Category Plot (Optional)
Category Plot Options (Optional)
The Command Window
Synthesizing Data
Zooming and Panning
Making a Graph with Multiple Axes
Saving Your Work - Tour 1C
Using Cursors
Removing a Trace and Axis
Creating a Graph with Stacked Axes
Creating a Page Layout
Saving Your Work - Tour 1D
Creating Controls
Creating a Dependency
Saving Your Work - Tour 1E
End of the General Tour
Guided Tour 2 - Data Analysis
Starting Guided Tour 2
Creating Synthetic Data
Quick Curve Fit to a Gaussian
More Curve Fitting to a Gaussian
Sorting
Fitting to a Subrange
Extrapolating a Fit After the Fit is Done
Appending a Fit
Guided Tour 3 - Histograms and Curve Fitting
Starting Guided Tour 3
Creating Synthetic Data
Histogram of White Noise
Saving Your Work - Tour 3A
Histogram of Gaussian Noise
Saving Your Work - Tour 3B
Curve Fit of Histogram Data
Saving Your Work - Tour 3C
Curve Fit Residuals (Optional)
Saving Your Work - Tour 3D
Writing a Procedure (Optional)
Saving a Procedure File (Optional)
Including a Procedure File (Optional)
For Further Exploration
Volume II User’s Guide: Part 1
Getting Help
Overview
The Guided Tour
Online Manual
Online Help
The Igor Help Browser
Igor Help Files
Tool Tips
Searching Igor Files
Example Experiments
Igor Mailing List
IgorExchange
Updating Igor
Technical Support
World Wide Web
Help Shortcuts
The Command Window
Overview
Command Window Example
The Command Buffer
Command Window Title
History Area
Limiting Command History
History Archive
History Carbon Copy
Searching the Command Window
Command Window Magnification
Command Window Formats
Getting Help from the Command Line
Command Window Shortcuts
Experiments, Files and Folders
Experiments
Saving Experiments
Saving as a Packed Experiment File
Saving as an Unpacked Experiment File
Opening Experiments
Merging Experiments
Reverting an Experiment
New Experiments
Saving an Experiment as a Template
Browsing Experiments
Symbolic Paths
New Symbolic Path Dialog
Symbolic Path Example
Automatically Created Paths
Symbolic Path Status Dialog
Kill Paths Dialog
References to Files and Folders
Avoiding Shared Igor Binary Files
Adopting Notebook and Procedure Files
Adopt All
How Experiments Are Loaded
Experiment Recreation Procedures
Experiment Initialization Commands
Errors During Experiment Load
How Igor Searches for Missing Folders
How Experiments Are Saved
Experiment Save Errors
Special Folders
Igor Pro 7 Folder
Igor Pro User Files
Igor Help Files Folder
Igor Extensions Folder
Igor Procedures Folder
User Procedures Folder
WaveMetrics Procedures Folder
Activating Additional WaveMetrics Files
Activating Other Files
Activating Files in a Multi-User Scenario
Igor File-Handling
Open or Load File Dialog
Recent Files and Experiments
Desktop Drag and Drop
IGOR64 Experiment Files
Windows
Windows
The Command Window
The Rest of the Windows
The Target Window
Window Names and Titles
The Open File Submenu
The Windows Menu
Making a New Window
Activating Windows
Showing and Hiding Windows
Closing a Window
Saving a Window as a Recreation Macro
Changing a Window’s Style From a Macro
The Window Control Dialog
Arranging Windows
The Tile or Stack Windows Dialog
Window Position and Size Management
Send to Back — Bring to Front
Text Windows
Executing Commands
Text Window Navigation
Finding Text in the Active Window
Find and Replace
Finding Text in Multiple Windows
Text Magnification
The Find Bar
Search and Replace
The Find Text in Multiple Windows Dialog
Search and Replace in Multiple Windows
Using an External Text Editor
A Plain Text File Has Been Modified Externally
A Plain Text File Has Been Modified Externally and In Igor
Editing a File with External Modifications
A Plain Text File Is Missing
Missing or Modified Text Files Dialog
Window Shortcuts
Waves
Overview
Waveform Model of Data
XY Model of Data
Making Waves
Wave Names
Number of Dimensions
Wave Data Types
Numeric Wave Data Types
Default Wave Properties
Make Operation
Make Operation Examples
Waves and the Miscellaneous Settings Dialog
Changing Dimension and Data Scaling
Advanced Dimension and Data Scaling
Date, Time, and Date&Time Units
Duplicate Operation
Duplicate Operation Examples
Killing Waves
KillWaves Operation Examples
Browsing Waves
Renaming Waves
Redimensioning Waves
Inserting Points
Deleting Points
Waveform Arithmetic and Assignments
Understanding Wave Assignments
Wave Assignment Example
More Wave Assignment Features
Indexing and Subranges
Interpolation in Wave Assignments
Lists of Values
Wave Initialization
Example: Normalizing Waves
Example: Converting XY Data to Waveform Data
Example: Concatenating Waves
Example: Decomposing Waves
Example: Complex Wave Calculations
Example: Comparison Operators and Wave Synthesis
Example: Wave Assignment and Indexing Using Labels
Mismatched Waves
NaNs, INFs and Missing Values
Don’t Use the Destination Wave as a Source Wave
Wave Dependency Formulas
Using the Wave Note
Integer Waves
Date/Time Waves
Text Waves
Text Wave Text Encodings
Using Text Waves to Store Binary Data
Wave Text Encoding Properties
Wave Properties
Multidimensional Waves
Overview
Creating Multidimensional Waves
Programmer Notes
Dimension Labels
Graphing Multidimensional Waves
Analysis on Multidimensional Waves
Multidimensional Wave Indexing
Multidimensional Wave Assignment
Vector (Waveform) to Matrix Conversion
Matrix to Matrix Conversion
Multidimensional Fourier Transform
Treating Multidimensional Waves as 1D
Numeric and String Variables
Overview
Creating Global Variables
Uses For Global Variables
Variable Names
System Variables
User Variables
Special User Variables
Numeric Variables
String Variables
Local and Parameter Variables in Procedures
String Variables and Text Encodings
Data Folders
Overview
Data Folder Syntax
Data Folder Operations and Functions
Data Folders Reference Functions
Data Folders and Commands
Data Folders and User-Defined Functions
Data Folders and Window Recreation Macros
Data Folders and Assignment Statements
Data Folders and Controls
Data Folders and Traces
Using Data Folders
Hiding Waves, Strings, and Variables
Separating Similar Data
Using Data Folders Example
The Data Browser
The Main List
The Current Data Folder
The Display Checkboxes
The Info Pane
The Plot Pane
The New Data Folder Button
The Browse Expt Button
The Save Copy Button
The Delete Button
The Execute Cmd Button
Data Browser Command String Limitations
Using the Find in Data Browser Dialog
DataBrowser Pop-Up Menu
Data Browser Preferences
Programming the Data Browser
Using the Data Browser as a Modal Dialog
Managing Data Browser User-Defined Buttons
Data Browser Shortcuts
Importing and Exporting Data
Importing Data
Load Waves Submenu
Line Terminators
LoadWave Text Encodings
Loading Delimited Text Files
Determining Column Formats
Date/Time Formats
Column Labels
Examples of Delimited Text
The Load Waves Dialog for Delimited Text — 1D
Editing Wave Names
Set Scaling After Loading Delimited Text Data
The Load Waves Dialog for Delimited Text — 2D
2D Label and Position Details
Loading Text Waves from Delimited Text Files
Delimited Text Tweaks
Troubleshooting Delimited Text Files
Loading Fixed Field Text Files
The Load Waves Dialog for Fixed Field Text
Loading General Text Files
Examples of General Text
Comparison of General Text, Fixed Field and Delimited Text
The Load Waves Dialog for General Text — 1D
Editing Wave Names for a Block
The Load Waves Dialog for General Text — 2D
Set Scaling After Loading General Text Data
General Text Tweaks
Troubleshooting General Text Files
Loading Igor Text Files
Examples of Igor Text
Igor Text File Format
Setting Scaling in an Igor Text File
The Load Waves Dialog for Igor Text
Loading MultiDimensional Waves from Igor Text Files
Loading Text Waves from Igor Text Files
Loading Igor Binary Data
The Igor Binary File
The Load Waves Dialog for Igor Binary
The LoadData Operation
Sharing Versus Copying Igor Binary Files
Loading Image Files
The Load Image Dialog
Loading PNG Files
Loading JPEG File
Loading BMP Files
Loading TIFF Files
Loading Sun Raster Files
Loading Row-Oriented Text Data
Loading HDF Files
Loading Excel Files
What XLLoadWave Loads
XLLoadWave and Wave Names
XLLoadWave Output Variables
Excel Date/Time Versus Igor Date/Time
Loading Excel Data Into a 2D Wave
Loading Matlab MAT Files
Finding Matlab Dynamic Libraries
Matlab Dynamic Library Issues
Matlab Dynamic Library Issues on Macintosh
Matlab Dynamic Library Issues on Windows
Supported Matlab Data Types
Numeric Data Loading Modes
Loading General Binary Files
Files GBLoadWave Can Handle
GBLoadWave And Very Big Files
The Load General Binary Dialog
VAX Floating Point
Loading JCAMP Files
Files JCAMPLoadWave Can Handle
Loading JCAMP Header Information
Variables Set By JCAMPLoadWave
Using Header Variables From a Function
Loading GIS Data
Loading Sound Files
Loading Waves Using Igor Procedures
Variables Set by File Loaders
Loading and Graphing Waveform Data
Loading and Graphing XY Data
Loading All of the Files in a Folder
Exporting Data
Saving Waves in a Delimited Text File
Saving Waves in a General Text File
Saving Waves in an Igor Text File
Saving Waves in Igor Binary Files
Saving Waves in Image Files
Saving HDF Files
Saving GIS Files
Saving Sound Files
Exporting Text Waves
Exporting MultiDimensional Waves
Accessing SQL Databases
Dialog Features
Overview
Operation Dialogs
Dialog Wave Browser
Operation Result Chooser
Operation Result Displayer
Tables
Overview
Creating Tables
Table Creation with New Experiment
Creating an Empty Table for Entering New Waves
Creating a Table to Edit Existing Waves
Showing Index Values
Showing Dimension Labels
The Horizontal Index Row
Creating a Table While Loading Waves From a File
Parts of a Table
Showing and Hiding Parts of a Table
Arrow Keys in Tables
Table Keyboard Navigation
Decimal Symbol and Thousands Separator in Tables
Using a Table to Create New Waves
Creating a New Wave by Entering a Value
Creating New Waves by Pasting Data from Another Program
Troubleshooting Table Copy and Paste
Creating New Waves by Pasting Data from Igor
Table Names and Titles
Hiding and Showing a Table
Killing and Recreating a Table
Index Columns
Column Names
Appending Columns
Removing Columns
Selecting Cells
The Insertion Cell
Entering Values
Table Display Precision
Date Values
Special Values
Missing Values (NaNs)
Infinities (INFs)
Clearing Values
Copying Values
Cutting Values
Pasting Values
Mismatched Number of Columns
Pasting and Index Columns
Pasting and Column Formats
Copy-Paste Waves
Inserting and Deleting Points
Finding Table Values
Replacing Table Values
Selectively Replacing Table Values
Exporting Data from Tables
Changing Column Positions
Changing Column Widths
Autosizing Columns By Double-Clicking
Autosizing Columns Using Menus
Autosizing Limitations
Changing Column Styles
Modifying Column Properties
Column Titles
Numeric Formats
Date/Time Formats
Octal Numeric Formats
Hexadecimal Numeric Formats
Editing Text Waves
Large Amounts of Text in a Single Cell
The Edit Text Cell Dialog
Tabs, Terminators and Other Control Characters
Editing Invalid Text
Entering Special Characters
Editing Multidimensional Waves
Changing the View of the Data
Changing the Viewed Dimensions
ModifyTable Elements Command
Multidimensional Copy/Cut/Paste/Clear
Replace-Paste of Multidimensional Data
Making a 2D Wave from Two 1D Waves
Insert-Paste of Multidimensional Data
Cutting and Pasting Rows Versus Columns
Create-Paste of Multidimensional Data
Making a 2D Wave from a Slice of a 3D Wave
Making a 1D Wave from a Column of a 3D Wave
Save Table Copy
Printing Tables
Exporting Tables as Graphics
Exporting a Table as a Picture
Table Preferences
Table Style Macros
Table Shortcuts
Graphs
Overview
Graph Features
The Graph Menu
Typing in Graphs
Graph Names
Creating Graphs
Waves and Axes
Types of Axes
Appending Traces
Trace Names
Removing Traces
Replacing Traces
Plotting NaNs and INFs
Scaling Graphs
Autoscaling
Manual Scaling
Panning
Fling Mode
Setting the Range of an Axis
Manual Axis Ranges
Automatic Axis Ranges
Overall Graph Properties
Graph Margins
Graph Dimensions
Modifying Traces
Selecting Traces to be Modified
Display Modes
Markers
Text Markers
Arrow Markers
Line Styles and Sizes
Fills
Bars
Grouping, Stacking and Adding Modes
Trace Color
Setting Trace Properties from an Auxiliary (Z) Wave
Color as f(z)
Color as f(z) Example
Marker Size as f(z)
Marker Number as f(z)
Pattern Number as f(z)
Color as f(z) Legend Example
Trace Offsets
Trace Multipliers
Hiding Traces
Complex Display Modes
Gaps
Error Bars
Error Shading
Customize at Point
Modifying Axes
Axis Tab
Auto/Man Ticks Tab
Ticks and Grids Tab
Tick Options Tab
Axis Label Tab
Label Options Tab
Axis Range Tab
Manual Ticks
Log Axes
Date/Time Axes
Custom Date Formats
Date/Time Example
Manual Ticks for Date/Time Axes
“Fake” Axes
Axis Labels
Axis Label Escape Codes
Axis Label Special Effects
Axis Label Units
Annotations in Graphs
Info Panel and Cursors
Using Cursors
Free Cursors
Cursor Styles
Programming With Cursors
Identifying a Trace
Subrange Display
Subrange Display Syntax
Subrange Display Limitations
Printing Graphs
Printing Poster-Sized Graphs
Other Printing Methods
Save Graph Copy
Exporting Graphs
Creating Graphs with Multiple Axes
Creating Stacked Plots
Staggered Stacked Plot
Waterfall Plots
Evenly-Spaced Waterfall Plot Example
Unevenly-Spaced Waterfall Plot Example
Fake Waterfall Plots
Wind Barb Plots
Creating Split Axes
Live Graphs and Oscilloscope Displays
Live Mode
Quick Append
Graph Preferences
How to use Graph Preferences
Saving and Recreating Graphs
Graph Style Macros
Example of Creating a Style Macro
Style Macros and Preferences
Applying the Style Macro
Limitations of Style Macros
Where to Store Style Macros
Graph Pop-Up Menus
Graph Expansion
Graph Shortcuts
Category Plots
Overview
Creating a Category Plot
Category Plot Commands
Combining Category Plots and XY Plots
Modifying a Category Plot
Bar and Category Gaps
Tick Mark Positioning
Fancy Tick Mark Labels
Horizontal Bars
Reversed Category Axis
Category Axis Range
Bar Drawing Order
Stacked Bar Charts
Numeric Categories
Combining Numeric and Category Traces
Category Plot Pitfalls
X Scaling Moves Bars
Changing the Drawing Order Breaks Stacked Bars
Bars Disappear with “Draw to next” Mode
Category Plot Preferences
Category Plot Axes and Axis Labels
Category Plot Wave Styles
How to Use Category Plot Preferences
Contour Plots
Overview
Contour Data
Gridded Data
XYZ Data
Creating a Contour Plot
Modifying a Contour Plot
Modify Contour Appearance Dialog
Contour Traces
Contour Trace Names
The Color of Contour Traces
Contour Fills
Removing Contour Traces from a Graph
Cursors on Contour Traces
Contour Trace Updates
Drawing Order of Contour Traces
Extracting Contour Trace Data
Contour Instance Names
Examples
Contour Legends
Contour Labels
Controlling Contour Label Updates
Repositioning and Removing Contour Labels
Adding Contour Labels
Modifying Contour Labels
Overriding the Contour Labels
Contour Labels and Drawing Tools
Contouring Pitfalls
Insufficient Resolution
Crossing Contour Lines
Flat Areas in the Contour Data
Contour Preferences
Contour Appearance Preferences
Contour Axis Preferences
How to Use Contour Plot Preferences
Contour Plot Shortcuts
Contour References
Contour Plot Shortcuts
Image Plots
Overview
False Color Images
Indexed Color Images
Direct Color Images
Loading an Image
Creating an Image Plot
Modifying an Image Plot
The Modify Image Appearance Dialog
Image X and Y Coordinates
Image X and Y Coordinates - Evenly Spaced
Image X and Y Coordinates - Unevenly Spaced
Plotting a 2D Z Wave With 1D X and Y Center Data
Plotting 1D X, Y and Z Waves With Gridded XY Data
Plotting 1D X, Y and Z Waves With Non-Gridded XY Data
Image Orientation
Image Rectangle Aspect Ratio
Image Polarity
Image Color Tables
Image Color Table Ranges
Example: Overlaying Data on a Background Image
Color Table Ranges - Lookup Table (Gamma)
Example: Using a Lookup for Advanced Color/Contrast Effects
Specialized Color Tables
Color Table Details
Igor Pro 4-Compatible Color Tables
Igor Pro 5-Compatible Color Tables
Igor Pro 6-Compatible Color Tables
Igor Pro 6.2-Compatible Color Tables
Color Table Waves
Indexed Color Details
Linear Indexed Color
Logarithmic Indexed Color
Example: Point-Scaled Color Index Wave
Direct Color Details
Creating Color Legends
Image Instance Names
Image Preferences
Image Appearance Preferences
Image Axis Preferences
How to Use Image Preferences
Image Plot Shortcuts
References
3D Graphics
Overview
1D Waves
2D Waves
Triplet Waves
3D Waves
Gizmo Overview
System Requirements
Hardware Compatibility
Compatibility with Previous Versions
Gizmo Guided Tour
Gizmo 3D Scatter Plot Tour
Gizmo Surface Plot Tour
Gizmo 3D Scatter Plot and Fitted Surface Tour
Gizmo Surface Using Voronoi Interpolation Tour
Gizmo Windows
The Gizmo Display Window
Gizmo Display Window Tool Palette
Gizmo Display Window Contextual Menu
The Gizmo Info Window
The Gizmo Object List
The Gizmo Display List
Item Ordering in the Gizmo Display List
The Gizmo Attribute List
Gizmo Objects
Gizmo Attributes
Internal Attributes
Global Attributes
Embedded Attributes
Gizmo Display Environment
Gizmo Coordinate System
Gizmo Dimensions
Gizmo Clipping
Gizmo Projections
Orthographic
Perspective
Frustum
Viewport
LookAt
Gizmo Object Rotation
Gizmo Object Rotation and Translation
Programming Rotations in Gizmo
Gizmo Colors, Material and Lights
Gizmo Color Specification
Converting Igor Colors to Gizmo Colors
Colors, Materials and Lighting
Color Waves
Color Tables in Gizmo
Reflection
Ambient
Diffuse
Specular
Shininess
Normals, Lighting and Shading
Transparency and Translucency
Gizmo Lights
Gizmo Directional Lights
Gizmo Positional Lights
Gizmo Drawing Objects
Line Objects
Triangle Objects
Quad Objects
Box Objects
Sphere Objects
Cylinder Objects
Disk Objects
String Objects
ColorScale Objects
Tetrahedron Objects
Pie Wedge Objects
Gizmo Axis and Axis Cue Objects
Axis Cue Objects
Axis Objects
Gizmo Wave Data Formats
Scatter, Path, and Ribbon Data Formats
Surface Object Data Formats
Parametric Surface Data Formats
Image Object Data Format
Isosurface and Voxelgram Object Data Formats
NaN Values in Waves
Gizmo Data Objects
Data Object Scaling
Path Plots
3D Scatter Plots
3D Bar Plots
Gizmo Image Plots
Surface Plots
Ribbon Plots
Voxelgram Plots
Isosurface Plots
Printing Gizmo Windows
Exporting Gizmo Windows
Advanced Gizmo Techniques
Group Objects
Texture Objects
Matrix4x4 Objects
Gizmo Subwindows
Gizmo Troubleshooting
Troubleshooting Gizmo Lighting Problems
Troubleshooting Gizmo Transparency Problems
Troubleshooting Gizmo Clipping Problems
Gizmo Compatibility
OpenGL Changes
Gizmo Commands in User-Defined Functions
Gizmo Recreation Macro Changes
Use of GL Constants in Gizmo Commands
Exporting Gizmo Graphics
Changes to Gizmo Text
Miscellaneous Gizmo Changes
Gizmo Hook Functions
Gizmo Named Hook Functions
Gizmo Unnamed Hook Functions
Page Layouts
Overview
Page Layout Windows
Page Layout Names and Titles
Hiding and Showing a Layout
Killing and Recreating a Layout
Page Layout Zooming
Page Layout Background Color
Page Layout Pages
The Page Sorter
Page Layout Page Sizes
Compatibility with Previous Versions of Igor
Printing Page Layouts
Page Layout Layers
Activating the Layout Layer
Activating the Current Drawing Layer
Changing the Current Drawing Layer
The Layout Layer Tool Palette
Arrow Tool
Marquee Tool
Annotation Tool
Frame Pop-Up Menu
Misc Pop-Up Menu
Graph Pop-Up Menu
Table Pop-Up Menu
Gizmo Pop-Up Menu
The Layout Layer Contextual Menu
Layout Contextual Menu for a Single Object
Layout Contextual Menu for a Selected Object
Page Layout Objects
Layout Object Names
Layout Object Properties
Appending a Graph, Table, or Gizmo Plot to the Layout Layer
Removing Objects from the Layout Layer
Modifying Layout Objects
Automatic Updating of Layout Objects
Dummy Objects
Arranging Layout Objects
Front-To-Back Relationship of Objects
Tiling and Stacking Objects
Aligning Layout Objects
Prepare the Graphs
Append the Graphs to the Layout
Align Left Edges of Layout Objects
Set Width and Height of Layout Objects
Set Vertical Positions of Layout Objects
Set Graph Plot Areas and Margins
Copying and Pasting Layout Objects
Copying Objects from the Layout Layer
Copying as an Igor Object Only
Pasting Objects into the Layout Layer
Pasting into a Different Experiment
Pasting Color Scale Annotations
Page Layout Annotations
Creating a New Annotation
Modifying an Existing Annotation
Positioning an Annotation
Positioning Annotations Programmatically
Legends in the Layout Layer
Default Font
Page Layout Pictures
Inserting a Picture in the Layout Layer
Resetting a Picture’s Size
Page Layout Subwindows
Page Layout Drawing
Page Layout Slide Shows
Exporting Page Layouts
Page Layout Preferences
Page Layout Style Macros
Page Layout Shortcuts
Volume III User’s Guide: Part 2
Notebooks
Overview
Plain and Formatted Notebooks
Notebook Text Encodings
Creating a New Notebook File
Opening an Existing File as a Notebook
Opening a File for Momentary Use
Sharing a Notebook File Among Experiments
Notebooks as Worksheets
Showing, Hiding and Killing Notebook Windows
Parts of a Notebook
Ruler Bar
Document Info Icon
Write-Protect Icon
Magnifier Icon
Notebook Properties
Notebook Document Properties
Notebook Paragraph Properties
Formatted Notebook Paragraph Properties
Plain Notebook Paragraph Properties
Notebook Character Properties
Plain Notebook Text Formats
Formatted Notebook Text Formats
Text Sizes
Vertical Offset
Superscript and Subscript
Notebook Read/Write Properties
Read-only
Write-protect
Changeable By Command Only
Working with Rulers
Defining a New Ruler
Redefining a Ruler
Creating a Derived Ruler
Finding Where a Ruler Is Used
Removing a Ruler
Transferring Rulers Between Notebooks
Special Characters
Inserting Pictures
Saving Pictures
Special Character Names
The Special Submenu
Scaling Pictures
Updating Special Characters
Notebook Action Special Characters
Creating a Hyperlink Action
Modifying Action Special Characters
Modifying the Action Frame
Modifying the Action Picture Scaling
Notebook Action Helper Procedure Files
Using Igor-Object Pictures
Updating Igor-Object Pictures
The Size of the Picture
Activating The Igor-Object Window
Breaking the Link Between the Object and the Picture
Compatibility Issues
Cross-Platform Pictures
Page Breaks
Headers and Footers
Printing Notebooks
Import and Export Via Rich Text Format Files
Saving an RTF File
Opening an RTF File
Exporting a Notebook as HTML
HTML Standards
HTML Horizontal Paragraph Formatting
HTML Vertical Paragraph Formatting
HTML Character Formatting
HTML Pictures
HTML Text Encoding
Embedding HTML Code
Finding Notebook Text
Replacing Notebook Text
Notebook Names, Titles and File Names
Notebook Info Dialog
Programming Notebooks
Logging Text
Inserting Graphics
Updating a Report Form
Updating Igor-Object Pictures
Retrieving Notebook Text
More Notebook Programming Examples
Generate Notebook Commands Dialog
Notebook Preferences
Notebook Template Files
Notebook Shortcuts
Annotations
Overview
Annotations Quick Start
The Annotation Dialog
Modifying Annotations
Annotation Text Content
Annotation Text Escape Codes
Font Escape Codes
Font Size Escape Codes
Relative Font Size Escape Codes
Special Escape Codes
Dynamic Escape Codes for Tags
Other Dynamic Escape Codes
TagVal and TagWaveRef Functions
Annotation Tabs
General Annotation Properties
Annotation Name
Annotation Frame
Annotation Color
Annotation Positioning
Textbox, Legend, and Color Scale Positioning in a Graph
Textbox and Legend Positioning in a Page Layout
Legends
Legend Text
Marker Size
Trace Symbol Centering
Trace Symbol Width
Symbol With Color as f(z)
Tags
Tag Text
Tag Wave and Attachment Point
Tag Positioning
Tags Attached to Offscreen Points
Contour Labels Are Tags
Color Scales
ColorScale Main Tab
ColorScale Size and Orientation
ColorScale Axis Labels Tab
ColorScale Ticks Tab
Elaborate Annotations
Text Info Variables
Text Info Variable Example
Programming with Annotations
Changing Annotation Names
Changing Annotation Types
Changing Annotation Text
Generating Text Programmatically
Deleting Annotations
Annotation Escape Codes
General Escape Codes
Tag Escape Codes
Text Info Variable Escape Codes
Dynamic Text Escape Codes
Legend Symbol Escape Codes
Axis Label Escape Codes
Backslashes in Annotation Escape Sequences
Drawing
Overview
The Tool Palette
Arrow Tool
Simple Text Tool
Lines and Arrows Tool
Rectangle, Rounded Rectangle, Oval
Arcs and Circles
Polygon Tool
Drawing and Editing Waves
The User Shapes Tool
Drawing Environment Pop-Up Menu
Drawing Layer Pop-up Menu
Mover Pop-Up Menu
Drawing Grid
Drawing Coordinate Systems
Absolute
Relative
Plot Relative (Graphs Only)
Axis-Based (Graphs Only)
Drawing Layers
Drawing Exporting and Importing
Copy/Paste Within Igor
Pasting a Picture Into a Drawing Layer
Programmatic Drawing
Drawing Operations
SetDrawLayer Operation
SetDrawEnv Operation
Draw Operations
DrawPoly and DrawBezier Operations
GraphWaveDraw, GraphWaveEdit, and GraphNormal
Drawing Programming Strategies
The Replace Layer Method
The Replace Group Method
The Append Method
Grouping
Example: Drop Lines
Drawing Shortcuts
Embedding and Subwindows
Overview
Subwindow Terminology
Subwindow Restrictions
Creating Subwindows
Positioning and Guides
Frames
Subwindow User-Interface Concepts
Subwindow Layout Mode and Guides
Layout Mode and Guide Tutorial
Graph Control Bars and Subpanels
Page Layouts and Subwindows
Notebooks as Subwindows in Control Panels
Subwindow Command Concepts
Subwindow Syntax
Subwindow Sizing
Subwindow Operations and Functions
Exporting Graphics (Macintosh)
Overview
PDF Format
Blurry Images in PDF
Encapsulated PostScript (EPS) Format
SVG Format
Platform-Independent Bitmap Formats
Choosing a Graphics Format
Exporting Graphics Via the Clipboard
Exporting Graphics Via a File
Exporting a Graphic File for Transfer to a Windows Computer
Exporting a Section of a Layout
Exporting Colors
Font Embedding
PostScript Font Names (OS X)
Exporting Graphics (Windows)
Overview
Metafile Formats
BMP Format
PDF Format
Blurry Images in PDF
Encapsulated PostScript (EPS) Format
SVG Format
Platform-Independent Bitmap Formats
Choosing a Graphics Format
Exporting Graphics Via the Clipboard
Exporting Graphics Via a File
Exporting a Section of a Layout
Exporting Colors
Font Embedding
PostScript Font Names
Analysis
Overview
Analysis of Multidimensional Waves
Waveform Versus XY Data
Converting XY Data to a Waveform
Using the XY Pair to Waveform Panel
Using the Interp Function
Using the Interpolate2 Operation
Dealing with Missing Values
Replace the Missing Values With Another Value
Remove the Missing Values
Work Around Gaps in Data
Replace Missing Data with Interpolated Values
Replace Missing Data Using the Interpolate2 Operation
Replace Missing Data Using Median Smoothing
Interpolation
The Interpolate2 Operation
Spline Interpolation Example
The Interpolate Dialog
Smoothing Spline Algorithm
Smoothing Spline Parameters
Interpolate2's Pre-averaging Feature
Identical Or Nearly Identical X Values
Destination X Coordinates from Destination Wave
Differentiation and Integration
Areas and Means
X Ranges and the Mean, faverage, and area Functions
Finding the Mean of Segments of a Wave
Area for XY Data
Wave Statistics
Histograms
Histogram Caveats
Graphing Histogram Results
Histogram Dialog
Histogram Example
Curve Fitting to a Histogram
Computing an “Integrating” Histogram
Sorting
Simple Sorting
Sorting to Find the Median Value
Multiple Sort Keys
MakeIndex and IndexSort Operations
Decimation
Decimation by Omission
Decimation by Smoothing
Miscellaneous Operations
WaveTransform
Compose Expression Dialog
Table Selection Item
Create Formula Checkbox
Matrix Math Operations
Normal Wave Expressions
MatrixXXX Operations
MatrixOp Operation
Matrix Commands
Using MatrixOp
MatrixOp Data Tokens
MatrixOp Wave Data Tokens
MatrixOp and Wave Dimensions
MatrixOp Operators
MatrixOp Multiplication and Scaling
MatrixOp Data Rearrangement and Extraction
MatrixOp Data Promotion Policy
MatrixOp Compound Expressions
MatrixOp Multithreading
MatrixOp Performance
MatrixOp Optimization Examples
MatrixOp Functions by Category
Analysis Programming
Passing Waves to User Functions and Macros
Returning Created Waves from User Functions
Writing Functions that Process Waves
Finding the Mean of Segments of a Wave
Working with Mismatched Data
References
Curve Fitting
Overview
Curve Fitting Terminology
Overview of Curve Fitting
Iterative Fitting
Data for Curve Fitting
Curve Fitting Using the Quick Fit Menu
Limitations of the Quick Fit Menu
Using the Curve Fitting Dialog
A Simple Case — Fitting to a Built-In Function: Line Fit
Automatic Guesses Didn’t Work
Fits with Constants
Fitting to a User-Defined Function
Fitting to an External Function (XFUNC)
The Coefficient Wave
The Destination Wave
Fitting a Subset of the Data
Weighting
Proportional Weighting
Fitting to a Multivariate Function
Model Results for Multivariate Fitting
Time Required to Update the Display
Multivariate Fitting Examples
Problems with the Curve Fitting Dialog
Built-in Curve Fitting Functions
Inputs and Outputs for Built-In Fits
Curve Fitting Dialog Tabs
Global Controls
Function and Data Tab
Data Options Tab
Coefficients Tab
Output Options Tab
Computing Residuals
Residuals Using Auto Trace
Residuals Using Auto Wave
Residuals Using an Explicit Residual Wave
Calculating Residuals After the Fit
Estimates of Error
Confidence Bands and Coefficient Confidence Intervals
Covariance Matrix
Correlation Matrix
Identifiability Problems
Fitting with Constraints
Constraints Using the Curve Fitting Dialog
Complex Constraints Using a Constraints Wave
Constraint Expressions
Equality Constraint
Example Fit with Constraints
Constraint Matrix and Vector
Constrained Curve Fitting Pitfalls
NaNs and INFs in Curve Fits
Special Variables for Curve Fitting
V_FitOptions
V_chisq
V_q
V_FitError and V_FitQuitReason
V_FitIterStart
S_Info
Errors in Variables: Orthogonal Distance Regression
ODR Fitting is Not Threadsafe
Weighting Waves for ODR Fitting
ODR Initial Guesses
Holding Independent Variable Adjustments
ODR Fit Results
Constraints and ODR Fitting
Error Estimates from ODR Fitting
ODR Fitting Examples
Fitting Implicit Functions
Example: Fit to an Ellipse
Fitting Sums of Fit Functions
Linear Dependency: A Major Issue
Constraints Applied to Sums of Fit Functions
Example: Summed Exponentials
Example: Function List in a String
Curve Fitting with Multiple Processors
Curve Fitting with Automatic Multithreading
Curve Fitting with Programmed Multithreading
Constraints and ThreadSafe Functions
User-Defined Fitting Functions
User-Defined Fitting Function Formats
Format of a Basic Fitting Function
Intermediate Results for Very Long Expressions
Conditionals
The New Fit Function Dialog Adds Special Comments
Functions that the Fit Function Dialog Doesn’t Handle Well
Format of a Multivariate Fitting Function
All-At-Once Fitting Functions
Multivariate All-At-Once Fitting Functions
Structure Fit Functions
Curve Fitting Using Commands
Batch Fitting
Curve Fitting Examples
Singularities in Curve Fitting
Special Considerations for Polynomial Fits
Errors Due to X Values with Large Offsets
Curve Fitting Troubleshooting
The Epsilon Wave
Curve Fitting References
Signal Processing
Overview
Fourier Transforms
Why Some Waves Aren’t Listed
Changes in Wave Type and Number of Points
Magic Number of Points and the IFFT
Changes in X Scaling and Units
FFT Amplitude Scaling
Phase Polarity
Effect of FFT and IFFT on Graphs
Effect of the Number of Points on the Speed of the FFT
Finding Magnitude and Phase
Magnitude and Phase Using WaveMetrics Procedures
Spectral Windowing
Hanning Window
Other Windows
Multidimensional Windowing
Power Spectra
Periodogram
Hilbert Transform
Time Frequency Analysis
Wigner Transform
Continuous Wavelet Transform
Discrete Wavelet Transform
Convolution
Correlation
Level Detection
Finding a Level in Waveform Data
Finding a Level in XY Data
Edge Statistics
Pulse Statistics
Peak Measurement
Smoothing
Built-in Smoothing Algorithms
Smoothing Demo
Binomial Smoothing
Savitzky-Golay Smoothing
Box Smoothing
Median Smoothing
Percentile, Min, and Max Smoothing
Loess Smoothing
Custom Smoothing Coefficients
End Effects
Rotate Operation
Unwrap Operation
References
Analysis of Functions
Operations that Work on Functions
Function Plotting
Function Plotting Using Dependencies
Function Plotting Using Controls
Plotting a User-Defined Function
Solving Differential Equations
Terminology
ODE Inputs
ODE Outputs
The Derivative Function
A First-Order Equation
A System of Coupled First-Order Equations
Optimizing the Derivative Function
Higher Order Equations
Free-Run Mode
Stiff Systems
Error Monitoring
Solution Methods
Interrupting IntegrateODE
Stopping and Restarting IntegrateODE
Stopping IntegrateODE on a Condition
Integrating a User Function
Finding Function Roots
Roots of Polynomials with Real Coefficients
Roots of a 1D Nonlinear Function
Roots of a System of Multidimensional Nonlinear Functions
Caveats for Multidimensional Root Finding
Finding Minima and Maxima of Functions
Extreme Points of a 1D Nonlinear Function
Extrema of Multidimensional Nonlinear Functions
Stopping Tolerances
Problems with Multidimensional Optimization
References
Image Processing
Overview
Image Transforms
Color Transforms
Grayscale or Value Transforms
Threshold
Threshold Examples
Spatial Transforms
Rotating Images
Image Registration
Mathematical Transforms
Standard Wave Operations
Interpolation and Sampling
Fast Fourier Transform
Wavelet Transform
Hough Transform
Fast Hartley Transform
Convolution Filters
Edge Detectors
Using More Exotic Edge Detectors
Morphological Operations
Image Analysis
ImageStats Operation
ImageLineProfile Operation
Histograms
Unwrapping Phase
HSL Segmentation
Particle Analysis
Seed Fill
Other Tools
Working with ROI
Subimage Selection
Handling Color
Background Removal
General Utilities: ImageTransform Operation
References
Statistics
Overview
Statistics Test Operations
Statistical Test Operations by Name
Statistical Test Operations by Data Format
Statistical Test Operations for Angular/Circular Data
Statistical Test Operations: Nonparametric Tests
Noise Functions
Cumulative Distribution Functions
Probability Distribution Functions
Inverse Cumulative Distribution Functions
General Purpose Statistics Operations and Functions
Hazard and Survival Functions
Statistics Procedures
Statistics References
Procedure Windows
Overview
Types of Procedure Files
Working with the Built-in Procedure Window
Compiling the Procedures
Templates Pop-Up Menu
Procedure Navigation Bar
Write-Protect Icon
Magnifier Icon
Creating Procedure Windows
Creating New Procedure Files
Opening an Auxiliary Procedure File
Showing Procedure Windows
Hiding and Killing Procedure Windows
Global Procedure Files
Saving Global Procedure Files
Shared Procedure Files
Saving Shared Procedure Files
Including a Procedure File
Creating Packages
Invisible Procedure Files
Invisible Procedure Windows Using #pragma hide
Invisible Procedure Windows Using Independent Modules
Invisible Procedure Files Using The Files Visibility Property
Inserting Text Into a Procedure Window
Adopting a Procedure File
Auto-Compiling
Debugging Procedures
Finding Text
Replacing Text
Printing Procedure Text
Indentation
Document Settings
Text Format Settings
Syntax Coloring
Procedure Window Preferences
Double and Triple-Clicking
Matching Characters
Code Comments
Procedure File Text Encodings
Procedure Window Shortcuts
Controls and Control Panels
Overview
Modes of Operation
Using Controls
Buttons
Charts
Checkboxes
CustomControl
GroupBox
ListBox
Pop-Up Menus
SetVariable
Sliders
TabControl
TitleBox
ValDisplays
Creating Controls
General Command Syntax
Creating Button Controls
Creating Chart Controls
Creating Checkbox Controls
Creating Custom Controls
Creating GroupBox Controls
Creating ListBox Controls
Creating PopupMenu Controls
Creating SetVariable Controls
Creating Slider Controls
Creating TabControl Controls
Creating TitleBox Controls
Creating ValDisplay Controls
Killing Controls
Getting Information About Controls
Updating Controls
Help Text for User-Defined Controls
Modifying Controls
Disabling and Hiding Controls
Control Background Color
Control Structures
Control Structure Example
Control Structure eventMod Field
Control Structure blockReentry Field
Control Structure blockReentry Advanced Example
User Data for Controls
Control User Data Examples
Action Procedures for Multiple Controls
Controls in Graphs
Drawing Limitations
Updating Problems
Control Panels
Embedding into Control Panels
Exterior Control Panels
Floating Control Panels
Control Panel Preferences
Controls Shortcuts
Platform-Related Issues
Platform-Related Issues
Windows-Specific Issues
Cross-Platform File Compatibility
Crossing Platforms
Transferring Files Using File Transfer Programs
File Name Extensions, File Types, and Creator Codes
Experiments and Paths
Picture Compatibility
Page Setup Compatibility
File System Issues
File and Folder Names
Path Separators
UNC Paths
Unix Paths
Keyboard and Mouse Usage
Command Window Input
Cross-Platform Text and Fonts
Text Encoding Compatibility
Carriage Returns and Linefeeds
Font Substitution
Cross-Platform Procedure Compatibility
File Paths
File Types and Extensions
Points Versus Pixels
Window Position Coordinates
Control Panel Resolution on Windows
Pictures in Notebooks
Text Encodings
Overview
Text Encoding Overview
Text Encodings Commonly Used in Igor
Western Text Encodings
Asian Text Encodings
Unicode
Unicode Character Encoding Schemes
Problems Caused By Text Encodings
Text Encoding Misidentification Problems
Invalid Text Problems
Mixed Text Encoding Problems
The Experiment File Text Encoding
The Default Text Encoding
Plain Text File Text Encodings
Determining the Text Encoding for a Plain Text File
Potential Problems Determining Plain Text File Text Encodings
Plain Text Text Encoding Conversion Errors
Some Plain Text Files Must Be Saved as UTF-8
History Text Encoding
Byte Order Marks
Formatted Text Notebook File Text Encodings
Wave Text Encodings
Determining the Text Encoding for Wave Elements
Wave Text Encoding Problems
LoadWave Text Encodings for Igor Binary Wave Files
LoadWave Text Encodings for Plain Text Files
Text Waves Containing Binary Data
Handling Text Waves Containing Binary Data
Manually Setting Wave Text Encodings
Data Folder Name Text Encodings
String Variable Text Encodings
String Variable Text Encoding Error Example
Text Encoding Programming Issues
Literal Strings in Igor Procedures
Literal Strings in Igor6/Igor7 Procedures
Literal Strings in Igor7-only Code
Determining the Encodings of a Particular Character
Other Text Encodings Issues
Characters Versus Bytes
Automatic Text Encoding Detection
Shift JIS Backslash Issue
Text Encoding Names and Codes
Symbol Font
Igor7 Symbol Font Backward Compatibility
Igor7 Symbol Font Backward Compatibility Limitations
Zapf Dingbat Font
Symbol Tips
Symbol Font Characters
Symbols with EPS and Igor PDF
Miscellany
Dashed Lines
The Color Environment
Color Blending
Fill Patterns
Gradient Fills
Miscellaneous Settings
Object Names
Standard Object Names
Liberal Object Names
Name Spaces
Renaming Objects
Graphics Technology
Graphics Technology on Windows
Graphics Technology on Macintosh
SVG Graphics
High-Resolution Displays
Windows High-DPI Recommendations
Pictures
Importing Pictures
The Picture Gallery
Pictures Dialog
NotebookPictures
Igor Extensions
WaveMetrics XOPs
Third Party Extensions
Activating Extensions
Memory Management
Macintosh System Requirements
Windows System Requirements
Preferences
Overview
Igor Preferences Directory
How to Use Preferences
Captured Preferences
Volume IV Programming
Working with Commands
Overview
Multiple Commands
Comments
Maximum Length of a Command
Parameters
Liberal Object Names
Commands and Data Folders
Types of Commands
Assignment Statements
Assignment Operators
Operators
Obsolete Operators
Operands
Numeric Type
Constant Type
Dependency Assignment Statements
Operation Commands
User-Defined Procedure Commands
Macro and Function Parameters
Function Commands
Parameter Lists
Expressions as Parameters
Parentheses Required for /N=()
String Expressions
Setting Bit Parameters
Working With Strings
String Expressions
Strings in Text Waves
String Properties
Unicode Literal Characters
Escape Sequences in Strings
Unicode Escape Sequences in Strings
Embedded Nulls in Literal Strings
String Indexing
String Assignment
String Substitution Using $
$ Precedence Issues In Commands
String Utility Functions
Special Cases
Instance Notation
Object Indexing
/Z Flag
Programming Overview
Overview
Organizing Procedures
WaveMetrics Procedure Files
Macros and Functions
Scanning and Compiling Procedures
Indentation Conventions
What’s Next
User-Defined Functions
Overview
Function Syntax
The Function Name
The Procedure Subtype
The Parameter List and Parameter Declarations
Integer Parameters
Optional Parameters
Inline Parameters
Local Variable Declarations
Body Code
Line Continuation
The Return Statement
Expression Evaluation
Integer Expressions
Integer Expressions in Wave Assignment Statements
Conditional Statements in Functions
If-Else-Endif
If-Elseif-Endif
Comparisons
Operators in Functions
Bitwise and Logical Operators
Bit Shift Operators
Increment and Decrement Operators
Switch Statements
Loops
Do-While Loop
Nested Do-While Loops
While Loop
For Loop
Break Statement
Continue Statement
Flow Control for Aborts
AbortOnRTE Keyword
AbortOnValue Keyword
try-catch-endtry Flow Control
User Abort Key Combinations
Constants
Pragmas
The rtGlobals Pragma
The version Pragma
The IgorVersion Pragma
The hide Pragma
The ModuleName Pragma
The IndependentModule Pragma
The rtFunctionErrors Pragma
The TextEncoding Pragma
Unknown Pragmas
Proc Pictures
How Parameters Work
Example of Pass-By-Value
Pass-By-Reference
How Waves Are Passed
Using Optional Parameters
Local Versus Global Variables
Local Variables Used by Igor Operations
Converting a String into a Reference Using $
Using $ to Refer to a Window
Using $ In a Data Folder Path
Compile Time Versus Runtime
Accessing Global Variables and Waves
Runtime Lookup of Globals
Put WAVE Declaration After Wave Is Created
Runtime Lookup Failure
Runtime Lookup Failure and the Debugger
Accessing Complex Global Variables and Waves
Accessing Text Waves
Accessing Global Variables and Waves Using Liberal Names
Runtime Lookup Example
Automatic Creation of WAVE, NVAR and SVAR References
Wave References
Automatic Creation of WAVE References
Standalone WAVE Reference Statements
Inline WAVE Reference Statements
WAVE Reference Types
WAVE Reference Type Flags
Problems with Automatic Creation of WAVE References
WAVE Reference Is Needed to Pass a Wave By Name
Wave Reference Function Results
Wave Reference Waves
Data Folder References
Using Data Folder References
The /SDFR Flag
The DFREF Type
Built-in DFREF Functions
Checking Data Folder Reference Validity
Data Folder Reference Function Results
Data Folder Reference Waves
Accessing Waves in Functions
Wave Reference Passed as Parameter
Wave Accessed Via String Passed as Parameter
Wave Accessed Via String Calculated in Function
Wave Accessed Via Literal Wave Name
Wave Accessed Via Wave Reference Function
Destination Wave Parameters
Wave Reference as Destination Wave
Exceptions To Destination Wave Rules
Updating of Destination Wave References
Inline Wave References With Destination Waves
Destination Wave Reference Issues
Changes in Destination Wave Behavior
Programming With Trace Names
Trace Name Parameters
User-defined Trace Names
Trace Name Programming Example
Free Waves
Free Wave Created When Free Data Folder Is Deleted
Free Wave Created For User Function Input Parameter
Free Wave Lifetime
Free Wave Leaks
Converting a Free Wave to a Global Wave
Free Data Folders
Free Data Folder Lifetime
Free Data Folder Objects Lifetime
Converting a Free Data Folder to a Global Data Folder
Structures in Functions
Simple Structure Example
Defining Structures
Using Structures
Structure Example
Built-In Structures
Applications of Structures
Using Structures with Windows and Controls
Limitations of Structures
Static Functions
ThreadSafe Functions
Function Overrides
Function References
Conditional Compilation
Conditional Compilation Directives
Conditional Compilation Symbols
Predefined Global Symbols
Conditional Compilation Examples
Function Errors
Coercion in Functions
Operations in Functions
Updates During Function Execution
Aborting Functions
Igor Pro 7 Programming Extensions
Double and Complex Variable Types
Integer Variable Types
Integer Expressions in User-Defined Functions
Inline Parameters in User-Defined Functions
Line Continuation in User-Defined Functions
Bit Shift Operators in User-Defined Functions
Increment and Decrement Operators in User-Defined Functions
Legacy Code Issues
Old-Style Comments and Compatibility Mode
Text After Flow Control
Global Variables Used by Igor Operations
Direct Reference to Globals
Macros
Overview
Comparing Macros and Functions
Macro Syntax
The Defining Keyword
The Procedure Name
The Procedure Subtype
The Parameter List and Parameter Declarations
Local Variable Declarations
Body Code
Conditional Statements in Macros
Loops in Macros
Return Statement in Macros
Invoking Macros
Using $ in Macros
Waves as Parameters in Macros
The Missing Parameter Dialog
Macro Errors
The Silent Option
The Slow Option
Accessing Variables Used by Igor Operations
Updates During Macro Execution
Aborting Macros
Converting Macros to Functions
User-Defined Menus
Overview
Menu Definition Syntax
Built-in Menus That Can Be Extended
Adding a New Main Menu
Dynamic Menu Items
Optional Menu Items
Multiple Menu Items
Consolidating Menu Items Into a Submenu
Specialized Menu Item Definitions
Special Characters in Menu Item Strings
Special Menu Characters on Windows
Enabling and Disabling Special Character Interpretation
Keyboard Shortcuts
Function Keys
Marquee Menus
Trace Menus
GraphPopup Menu
Popup Contextual Menus
Interacting with the User
Overview
Modal and Modeless User Interface Techniques
The Simple Input Dialog
Pop-Up Menus in Simple Dialogs
Saving Parameters for Reuse
Multiple Simple Input Dialogs
Help For Simple Input Dialogs
Displaying an Open File Dialog
Displaying a Multi-Selection Open File Dialog
Open File Dialog File Filters
Displaying a Save File Dialog
Save File Dialog File Filters
Using Open in a Utility Routine
Pause For User
PauseForUser Simple Cursor Example
PauseForUser Advanced Cursor Example
PauseForUser Control Panel Example
Progress Windows
Control Panels and Event-Driven Programming
Detecting a User Abort
Creating a Contextual Menu
Cursors as Input Device
Marquee Menu as Input Device
Polygon as Input Device
Programming Techniques
Overview
The Include Statement
Procedure File Version Information
Turning the Included File’s Menus Off
Optionally Including Files
Writing General-Purpose Procedures
Programming with Liberal Names
Programming with Data Folders
Data Folder Applications
Storing Procedure Globals
Storing Runs of Data
Setting and Restoring the Current Data Folder
Determining a Function’s Target Data Folder
Clearing a Data Folder
Using Strings
Using Strings as Lists
Using Keyword-Value Packed Strings
Using Strings with Extractable Commands
Character-by-Character Operations
Regular Expressions
Regular Expression Operations and Functions
Basic Regular Expressions
Regular Expression Metacharacters
Character Classes in Regular Expressions
Backslash in Regular Expressions
Backslash and Nonprinting Characters
Backslash and Nonprinting Characters Arcania
Backslash and Generic Character Types
Backslash and Simple Assertions
Circumflex and Dollar
Dot, Period, or Full Stop
Character Classes and Brackets
POSIX Character Classes
Alternation
Match Option Settings
Matching Newlines
Subpatterns
Named Subpatterns
Repetition
Quantifier Greediness
Quantifiers With Subpatterns
Atomic Grouping and Possessive Quantifiers
Back References
Assertions
Conditional Subpatterns
Regular Expression Comments
Recursive Patterns
Subpatterns as Subroutines
Regular Expressions References
Working with Files
Finding Files
Other File– and Folder–Related Operations and Functions
Writing to a Text File
Open and Close Operations
Wave Reference Functions
Processing Lists of Waves
Graphing a List of Waves
Operating on the Traces in a Graph
Using a Fixed-Length List
Operating on Qualified Waves
The ExecuteCmdOnList Function
The Execute Operation
Using a Macro From a User-Defined Function
Calling an External Operation From a User-Defined Function
Other Uses of Execute
Deferred Execution Using the Operation Queue
Procedures and Preferences
Experiment Initialization Procedures
Procedure Subtypes
Memory Considerations
Wave Reference Counting
Creating Igor Extensions
Debugging
Debugging Procedures
Debugging With Print Statements
The Debugger
Setting Breakpoints
Debugging on Error
Macro Execute Error: The Debug Button
Stepping Through Your Code
The Stack and Variables Lists
The Variables List Columns
Variables Pop-Up Menu
Macro Variables
Function Variables
Function Structures
The Current Data Folder
Graph, Table, String, and Expressions Inspectors
Inspecting Waves
Inspecting Strings
The Procedure Pane
After You Find a Bug
Debugger Shortcuts
Dependencies
Dependency Formulas
Dependencies and the Object Status Dialog
Numeric and String Variable Dependencies
Wave Dependencies
Cascading Dependencies
Deleting a Dependency
Broken Dependent Objects
When Dependencies are Updated
Programming with Dependencies
Using Operations in Dependency Formulas
Dependency Caveats
Advanced Topics
Regular Modules
Regular Modules in Action Procedures and Hook Functions
Regular Modules and User-Defined Menus
Independent Modules
Independent Modules - A Simple Example
SetIgorOption IndependentModuleDev=1
Independent Module Development Tips
Independent Modules and #include
Limitations of Independent Modules
Independent Modules in Action Procedures and Hook Functions
Independent Modules and User-Defined Menus
Independent Modules and Popup Menus
Regular Modules Within Independent Modules
Calling Routines From Other Modules
Using Execute Within an Independent Module
Independent Modules and Dependencies
Independent Modules and Pictures
Making Regular Procedures Independent-Module-Compatible
Sound
Movies
Playing Movies
Creating Movies
Extracting Movie Frames
Movie Programming Examples
Timing
Ticks Counter
Microsecond Timer
Packages
Creating a Package
Lightweight Packages
Managing Package Data
Creating and Accessing the Package Data Folder
Creating and Accessing the Package Per-Instance Data Folders
Saving Package Preferences
Saving Package Preferences in a Special-Format Binary File
Saving Package Preferences in an Experiment File
Creating Your Own Help File
Syntax of a Help File
Creating Links
Checking Links
Creating Formatted Text
Printf Operation
sprintf Operation
fprintf Operation
wfprintf Operation
Example Using fprintf and wfprintf
Client/Server Overview
Apple Events
AppleScript
Executing Unix Commands on Mac OS X
ActiveX Automation
Calling Igor from Scripts
Network Communication
URLs
Usernames and Passwords
Supported Network Schemes
Percent Encoding
Safe Handling of Passwords
Network Timeouts and Aborts
Network Connections From Multiple Threads
File Transfer Protocol (FTP)
FTP Limitations
Downloading a File
Downloading a Directory
Uploading a File
Uploading a Directory
Creating a Directory
Deleting a Directory
FTP Transfer Types
FTP Troubleshooting
Hypertext Transfer Protocol (HTTP)
HTTP Limitations
Downloading a Web Page Via HTTP
Downloading a File Via HTTP
Making a Query Via HTTP
HTTP Troubleshooting
Operation Queue
User-Defined Hook Functions
AfterCompiledHook
AfterFileOpenHook
BeforeDebuggerOpensHook
AfterMDIFrameSizedHook
AfterWindowCreatedHook
BeforeExperimentSaveHook
BeforeFileOpenHook
IgorBeforeNewHook
IgorBeforeQuitHook
IgorMenuHook
IgorQuitHook
IgorStartOrNewHook
Window User Data
Window Hook Functions
Window Hooks and Subwindows
Named Window Hook Functions
Named Window Hook Events
WMWinHookStruct
Mouse Events
Keyboard Events
Keyboard Events Example
Setting the Mouse Cursor
Panel Done Button Example
Window Hook Deactivate and Kill Events
Window Hook Show and Hide Events
Hook Functions for Exterior Subwindows
Unnamed Window Hook Functions
Custom Marker Hook Functions
WMMarkerHookStruct
Marker Hook Example
Data Acquisition
FIFOs and Charts
FIFO Overview
Chart Recorder Overview
Programming with FIFOs
FIFO File Format
FIFO and Chart Demos
Using Chart Recorder Controls
Chart Reorder Control Basics
Operating a Chart Recorder
Chart Recorder Control Demos
Background Tasks
Background Task Example #1
Background Task Exit Code
Background Task Period
Background Task Limitations
Background Tasks and Errors
Background Tasks and Dialogs
Background Task Tips
Background Task Example #2
Background Task Example #3
Old Background Task Techniques
Automatic Parallel Processing with TBB
Automatic Parallel Processing with MultiThread
Data Folder Reference MultiThread Example
Wave Reference MultiThread Example
Structure Array MultiThread Example
ThreadSafe Functions and Multitasking
Thread Data Environment
Parallel Processing - Group-at-a-Time Method
Parallel Processing - Thread-at-a-Time Method
Input/Output Queues
Parallel Processing With Large Datasets
Preemptive Background Task
More Multitasking Examples
Cursors — Moving Cursor Calls Function
Graph-Specific Cursor Moved Hook
Global Cursor Moved Hook
Cursor Globals
Profiling Igor Procedures
Crashes
Crash Logs on Mac OS X
Crashes On Windows
Volume V Reference
Igor Reference
Built-In Operations by Category
Graphs
Contour and Image Plots
Tables
Layouts
Gizmo
Subwindows
Other Windows
All Windows
Wave Operations
Analysis
Matrix Operations
Analysis of Functions
Signal Processing
Image Analysis
Statistics
Geometry
Drawing
Programming & Utilities
Files & Paths
Data Folders
Movies & Sound
Controls & Cursors
FIFOs
Printing
Built-In Functions by Category
Numbers
Trig
Exponential
Complex
Rounding
Conversion
Time and Date
Matrix Analysis
Wave Analysis
About Waves
Special
Statistics
Windows
Strings
Names
Lists
Programming
Data Folders
I/O (files, paths, and PICTs)
Built-In Keywords
Procedure Declarations
Procedure Subtypes
Object References
Function Local Variable Keywords
Flow Control
Other Programming Keywords
Built-in Structures
Hook Functions
Alphabetic Listing of Functions, Operations and Keywords
Reference Syntax Guide
#define
#if-#elif-#endif
#if-#endif
#ifdef-#endif
#ifndef-#endif
#include
#pragma
#undef
Abort
AbortOnRTE
AbortOnValue
abs
acos
acosh
AddFIFOData
AddFIFOVectData
AddListItem
AddMovieAudio
AddMovieFrame
AdoptFiles
airyA
airyAD
airyB
airyBD
alog
AnnotationInfo
AnnotationList
APMath
Append
AppendImage
AppendLayoutObject
AppendMatrixContour
AppendText
AppendToGizmo
AppendToGraph
AppendToLayout
AppendToTable
AppendXYZContour
area
areaXY
asin
asinh
atan
atan2
atanh
AutoPositionWindow
AxisInfo
AxisList
AxisValFromPixel
BackgroundInfo
Beep
Besseli
Besselj
Besselk
Bessely
bessI
bessJ
bessK
bessY
beta
betai
BinarySearch
BinarySearchInterp
binomial
binomialln
binomialNoise
BoundingBall
break
BrowseURL
BuildMenu
Button
ButtonControl
cabs
CameraWindow
CaptureHistory
CaptureHistoryStart
catch
cd
CDFFunc
ceil
cequal
char2num
Chart
chebyshev
chebyshevU
CheckBox
CheckBoxControl
CheckDisplayed
CheckName
ChildWindowList
ChooseColor
CleanupName
Close
CloseHelp
CloseMovie
CloseProc
cmplx
CmpStr
ColorScale
ColorTab2Wave
Complex
Concatenate
conj
Constant
continue
ContourInfo
ContourNameList
ContourNameToWaveRef
ContourZ
ControlBar
ControlInfo
ControlNameList
ControlUpdate
ConvertGlobalStringTextEncoding
ConvertTextEncoding
ConvexHull
Convolve
CopyFile
CopyFolder
CopyScales
Correlate
cos
cosh
CosIntegral
cot
coth
CountObjects
CountObjectsDFR
cpowi
CreateAliasShortcut
CreateBrowser
CreationDate
Cross
csc
csch
CsrInfo
CsrWave
CsrWaveRef
CsrXWave
CsrXWaveRef
CTabList
CtrlBackground
CtrlNamedBackground
CtrlFIFO
Cursor
CursorStyle
CurveFit
CustomControl
CWT
DataFolderDir
DataFolderExists
DataFolderRefsEqual
DataFolderRefStatus
dateToJulian
date
date2secs
DateTime
dawson
DDEExecute
DDEInitiate
DDEPokeString
DDEPokeWave
DDERequestString
DDERequestWave
DDEStatus
DDETerminate
Debugger
DebuggerOptions
default
DefaultFont
DefaultGUIControls
DefaultGUIFont
DefaultTextEncoding
defined
DefineGuide
DelayUpdate
DeleteAnnotations
DeleteFile
DeleteFolder
DeletePoints
deltax
DFREF
Differentiate
digamma
Dilogarithm
DimDelta
DimOffset
DimSize
Dir
Display
DisplayHelpTopic
DisplayProcedure
do-while
DoAlert
DoIgorMenu
DoPrompt
Double
DoUpdate
DoWindow
DoWindow/T
DoWindow/S
DoXOPIdle
DPSS
DrawAction
DrawArc
DrawBezier
DrawLine
DrawOval
DrawPICT
DrawPoly
DrawRect
DrawRRect
DrawText
DrawUserShape
DSPDetrend
DSPPeriodogram
Duplicate
DuplicateDataFolder
DWT
e
EdgeStats
Edit
ei
End
EndMacro
EndStructure
endtry
enoise
EqualWaves
erf
erfc
erfcw
ErrorBars
Execute
Execute/P
ExecuteScriptText
exists
exp
ExperimentModified
expInt
ExpIntegralE1
expnoise
ExportGizmo
Extract
factorial
FakeData
FastGaussTransform
FastOp
faverage
faverageXY
FBinRead
FBinWrite
FetchURL
FFT
FGetPos
FIFO2Wave
FIFOStatus
FilterFIR
FilterIIR
FindContour
FindDimLabel
FindDuplicates
FindLevel
FindLevels
FindListItem
FindPeak
FindPointsInPoly
FindRoots
FindSequence
FindValue
FitFunc
floor
FontList
FontSizeHeight
FontSizeStringWidth
for-endfor
FPClustering
fprintf
FReadLine
fresnelCos
fresnelCS
fresnelSin
FSetPos
FStatus
FTPCreateDirectory
FTPDelete
FTPDownload
FTPUpload
FuncFit
FuncFitMD
FUNCREF
FuncRefInfo
Function
FunctionInfo
FunctionList
FunctionPath
GalleryGlobal
gamma
gammaEuler
gammaInc
gammaNoise
gammln
gammp
gammq
Gauss
Gauss1D
Gauss2D
GBLoadWave
gcd
GetAxis
GetBrowserLine
GetBrowserSelection
GetCamera
GetDataFolder
GetDataFolderDFR
GetDefaultFont
GetDefaultFontSize
GetDefaultFontStyle
GetDimLabel
GetEnvironmentVariable
GetErrMessage
GetFileFolderInfo
GetFormula
GetGizmo
GetIndependentModuleName
GetIndexedObjName
GetIndexedObjNameDFR
GetKeyState
GetLastUserMenuInfo
GetMarquee
GetMouse
GetRTError
GetRTErrMessage
GetRTLocation
GetRTLocInfo
GetRTStackInfo
GetScrapText
GetSelection
GetUserData
GetWavesDataFolder
GetWavesDataFolderDFR
GetWindow
GizmoInfo
GizmoPlot
GizmoScale
gnoise
Graph
GraphMarquee
GraphNormal
GraphStyle
GraphWaveDraw
GraphWaveEdit
Grep
GrepList
GrepString
GridStyle
GroupBox
GuideInfo
GuideNameList
Hanning
Hash
hcsr
hermite
hermiteGauss
hide
HideIgorMenus
HideInfo
HideProcedures
HideTools
HilbertTransform
Histogram
hyperG0F1
hyperG1F1
hyperG2F1
hyperGNoise
hyperGPFQ
i
ICA
if-elseif-endif
if-endif
IFFT
IgorInfo
IgorVersion
IgorVersion
ilim
imag
ImageAnalyzeParticles
ImageBlend
ImageBoundaryToMask
ImageEdgeDetection
ImageFileInfo
ImageFilter
ImageFocus
ImageFromXYZ
ImageGenerateROIMask
ImageGLCM
ImageHistModification
ImageHistogram
ImageInfo
ImageInterpolate
ImageLineProfile
ImageLoad
ImageMorphology
ImageNameList
ImageNameToWaveRef
ImageRegistration
ImageRemoveBackground
ImageRestore
ImageRotate
ImageSave
ImageSeedFill
ImageSnake
ImageSkeleton3D
ImageStats
ImageThreshold
ImageTransform
ImageUnwrapPhase
ImageWindow
IndependentModule
IndependentModuleList
IndexedDir
IndexedFile
IndexSort
IndexToScale
Inf
InsertPoints
Int
Int64
Integrate
Integrate1D
Integrate2D
IntegrateODE
interp
Interp2D
Interp3D
Interp3DPath
Interpolate2
Interpolate3D
inverseErf
inverseErfc
ItemsInList
j
JCAMPLoadWave
JacobiCn
JacobiSn
jlim
JointHistogram
JulianToDate
KillBackground
KillControl
KillDataFolder
KillFIFO
KillFreeAxis
KillPath
KillPICTs
KillStrings
KillVariables
KillWaves
KillWindow
KMeans
Label
laguerre
laguerreA
laguerreGauss
LambertW
Layout
Layout
LayoutInfo
LayoutMarquee
LayoutPageAction
LayoutSlideShow
LayoutStyle
leftx
Legend
legendreA
limit
LinearFeedbackShiftRegister
ListBox
ListBoxControl
ListMatch
ListToTextWave
ListToWaveRefWave
ln
LoadData
LoadPackagePreferences
LoadPICT
LoadWave
Loess
log
logNormalNoise
LombPeriodogram
lorentzianNoise
LowerStr
Macro
MacroList
magsqr
Make
MakeIndex
MandelbrotPoint
MarcumQ
MarkPerfTestTime
MatrixCondition
MatrixConvolve
MatrixCorr
MatrixDet
MatrixDot
MatrixEigenV
MatrixFilter
MatrixGaussJ
MatrixGLM
MatrixInverse
MatrixLinearSolve
MatrixLinearSolveTD
MatrixLLS
MatrixLUBkSub
MatrixLUD
MatrixLUDTD
MatrixMultiply
MatrixOp
MatrixRank
MatrixSchur
MatrixSolve
MatrixSVBkSub
MatrixSVD
MatrixTrace
MatrixTranspose
max
mean
median
MeasureStyledText
Menu
min
MLLoadWave
mod
ModDate
Modify
ModifyBrowser
ModifyCamera
ModifyContour
ModifyControl
ModifyControlList
ModifyFreeAxis
ModifyGizmo
ModifyGraph (general)
ModifyGraph (traces)
ModifyGraph (axes)
ModifyGraph (colors)
ModifyImage
ModifyLayout
ModifyPanel
ModifyTable
ModifyWaterfall
ModuleName
MoveDataFolder
MoveFile
MoveFolder
MoveString
MoveSubwindow
MoveVariable
MoveWave
MoveWindow
MultiTaperPSD
MultiThread
MultiThreadingControl
NameOfWave
NaN
NeuralNetworkRun
NeuralNetworkTrain
NewCamera
NewDataFolder
NewFIFO
NewFIFOChan
NewFreeAxis
NewFreeDataFolder
NewFreeWave
NewGizmo
NewImage
NewLayout
NewMovie
NewNotebook
NewPanel
NewPath
NewWaterfall
norm
NormalizeUnicode
note
Note
Notebook
Notebook (Document Properties)
Notebook (Headers and Footers)
Notebook (Miscellaneous)
Notebook (Paragraph Properties)
Notebook (Selection)
Notebook (Text Properties)
Notebook (Writing Graphics)
Notebook (Writing Special Characters)
Notebook (Accessing Contents)
Notebook (Writing Text)
NotebookAction
num2char
num2istr
num2str
NumberByKey
numpnts
numtype
NumVarOrDefault
NVAR
NVAR_Exists
Open
OpenHelp
OpenNotebook
OpenProc
OperationList
Optimize
Override
p
p2rect
PadString
Panel
PanelResolution
ParamIsDefault
ParseFilePath
ParseOperationTemplate
PathInfo
PathList
PauseForUser
PauseUpdate
PCA
pcsr
Pi
PICTInfo
PICTList
Picture
PixelFromAxisVal
PlayMovie
PlayMovieAction
PlaySnd
PlaySound
pnt2x
Point
PointF
poissonNoise
poly
poly2D
PolygonArea
popup
PopupContextualMenu
PopupMenu
PopupMenuControl
PossiblyQuoteName
Preferences
PrimeFactors
Print
printf
PrintGraphs
PrintLayout
PrintNotebook
PrintSettings
PrintTable
Proc
ProcedureText
ProcGlobal
Project
Prompt
PulseStats
PutScrapText
pwd
q
qcsr
Quit
r
r2polar
RatioFromNumber
Rect
RectF
ReadVariables
real
Redimension
Remove
RemoveByKey
RemoveContour
RemoveEnding
RemoveFromGizmo
RemoveFromGraph
RemoveFromLayout
RemoveFromList
RemoveFromTable
RemoveImage
RemoveLayoutObjects
RemoveListItem
RemovePath
Rename
RenameDataFolder
RenamePath
RenamePICT
RenameWindow
ReorderImages
ReorderTraces
ReplaceNumberByKey
ReplaceString
ReplaceStringByKey
ReplaceText
ReplaceWave
Resample
ResumeUpdate
return
Reverse
RGBColor
RGBAColor
rightx
root
Rotate
round
rtGlobals
s
Save
SaveData
SaveExperiment
SaveGraphCopy
SaveNotebook
SavePackagePreferences
SavePICT
SaveTableCopy
sawtooth
ScaleToIndex
ScreenResolution
sec
sech
Secs2Date
Secs2Time
SelectNumber
SelectString
SetActiveSubwindow
SetAxis
SetBackground
SetDashPattern
SetDataFolder
SetDimLabel
SetDrawEnv
SetDrawLayer
SetEnvironmentVariable
SetFileFolderInfo
SetFormula
SetIgorHook
SetIgorMenuMode
SetIgorOption
SetMarquee
SetProcessSleep
SetRandomSeed
SetScale
SetVariable
SetVariableControl
SetWaveLock
SetWaveTextEncoding
SetWindow
ShowIgorMenus
ShowInfo
ShowTools
SinIntegral
sign
Silent
sin
sinc
sinh
Sleep
Slider
SliderControl
Slow
Smooth
SmoothCustom
Sort
SortColumns
SortList
SoundInRecord
SoundInSet
SoundInStartChart
SoundInStatus
SoundInStopChart
SoundLoadWave
SoundSaveWave
SpecialCharacterInfo
SpecialCharacterList
SpecialDirPath
sphericalBessJ
sphericalBessJD
sphericalBessY
sphericalBessYD
sphericalHarmonics
SphericalInterpolate
SphericalTriangulate
SplitString
SplitWave
sprintf
sqrt
sscanf
Stack
StackWindows
StartMSTimer
Static
StatsAngularDistanceTest
StatsANOVA1Test
StatsANOVA2NRTest
StatsANOVA2RMTest
StatsANOVA2Test
StatsBetaCDF
StatsBetaPDF
StatsBinomialCDF
StatsBinomialPDF
StatsCauchyCDF
StatsCauchyPDF
StatsChiCDF
StatsChiPDF
StatsChiTest
StatsCircularCorrelationTest
StatsCircularMeans
StatsCircularMoments
StatsCircularTwoSampleTest
StatsCMSSDCDF
StatsCochranTest
StatsContingencyTable
StatsCorrelation
StatsDExpCDF
StatsDExpPDF
StatsDIPTest
StatsDunnettTest
StatsErlangCDF
StatsErlangPDF
StatsErrorPDF
StatsEValueCDF
StatsEValuePDF
StatsExpCDF
StatsExpPDF
StatsFCDF
StatsFPDF
StatsFriedmanCDF
StatsFriedmanTest
StatsFTest
StatsGammaCDF
StatsGammaPDF
StatsGeometricCDF
StatsGeometricPDF
StatsHodgesAjneTest
StatsGEVCDF
StatsGEVPDF
StatsHyperGCDF
StatsHyperGPDF
StatsInvBetaCDF
StatsInvBinomialCDF
StatsInvCauchyCDF
StatsInvChiCDF
StatsInvCMSSDCDF
StatsInvDExpCDF
StatsInvEValueCDF
StatsInvExpCDF
StatsInvFCDF
StatsInvFriedmanCDF
StatsInvGammaCDF
StatsInvGeometricCDF
StatsInvKuiperCDF
StatsInvLogisticCDF
StatsInvLogNormalCDF
StatsInvMaxwellCDF
StatsInvMooreCDF
StatsInvNBinomialCDF
StatsInvNCChiCDF
StatsInvNCFCDF
StatsInvNormalCDF
StatsInvParetoCDF
StatsInvPoissonCDF
StatsInvPowerCDF
StatsInvQCDF
StatsInvQpCDF
StatsInvRayleighCDF
StatsInvRectangularCDF
StatsInvSpearmanCDF
StatsInvStudentCDF
StatsInvTopDownCDF
StatsInvTriangularCDF
StatsInvUSquaredCDF
StatsInvVonMisesCDF
StatsInvWeibullCDF
StatsJBTest
StatsKDE
StatsKendallTauTest
StatsKSTest
StatsKuiperCDF
StatsKWTest
StatsLinearCorrelationTest
StatsLinearRegression
StatsLogisticCDF
StatsLogisticPDF
StatsLogNormalCDF
StatsLogNormalPDF
StatsMaxwellCDF
StatsMaxwellPDF
StatsMedian
StatsMooreCDF
StatsMultiCorrelationTest
StatsNBinomialCDF
StatsNBinomialPDF
StatsNCChiCDF
StatsNCChiPDF
StatsNCFCDF
StatsNCFPDF
StatsNCTCDF
StatsNCTPDF
StatsNormalCDF
StatsNormalPDF
StatsNPMCTest
StatsNPNominalSRTest
StatsParetoCDF
StatsParetoPDF
StatsPermute
StatsPoissonCDF
StatsPoissonPDF
StatsPowerCDF
StatsPowerNoise
StatsPowerPDF
StatsQCDF
StatsQpCDF
StatsQuantiles
StatsRankCorrelationTest
StatsRayleighCDF
StatsRayleighPDF
StatsRectangularCDF
StatsRectangularPDF
StatsResample
StatsSample
StatsRunsCDF
StatsScheffeTest
StatsShapiroWilkTest
StatsSignTest
StatsSpearmanRhoCDF
StatsSRTest
StatsStudentCDF
StatsStudentPDF
StatsTopDownCDF
StatsTriangularCDF
StatsTriangularPDF
StatsTrimmedMean
StatsTTest
StatsTukeyTest
StatsUSquaredCDF
StatsVariancesTest
StatsVonMisesCDF
StatsVonMisesNoise
StatsVonMisesPDF
StatsWaldCDF
StatsWaldPDF
StatsWatsonUSquaredTest
StatsWatsonWilliamsTest
StatsWeibullCDF
StatsWeibullPDF
StatsWheelerWatsonTest
StatsWilcoxonRankTest
StatsWRCorrelationTest
StopMSTimer
str2num
Strconstant
String
StringByKey
StringCRC
StringFromList
StringList
StringMatch
strlen
strsearch
strswitch-case-endswitch
STRUCT
StructGet
StructPut
Structure
StrVarOrDefault
StudentA
StudentT
Submenu
sum
SumDimension
SumSeries
SVAR
SVAR_Exists
switch-case-endswitch
t
TabControl
TabControl
Table
TableStyle
TableInfo
Tag
TagVal
TagWaveRef
tan
tanh
TextBox
TextEncoding
TextEncodingCode
TextEncodingName
TextFile
ThreadGroupCreate
ThreadGroupGetDF
ThreadGroupGetDFR
ThreadGroupPutDF
ThreadGroupRelease
ThreadGroupWait
ThreadProcessorCount
ThreadReturnValue
ThreadSafe
ThreadStart
ticks
Tile
TileWindows
time
TitleBox
ToCommandLine
ToolsGrid
TraceFromPixel
TraceInfo
TraceNameList
TraceNameToWaveRef
Triangulate3D
TrimString
trunc
try
try-catch-endtry
UInt64
UniqueName
UnPadString
UnsetEnvironmentVariable
Unwrap
UpperStr
URLDecode
URLEncode
URLRequest
ValDisplay
Variable
Variance
VariableList
vcsr
version
VoigtFunc
WAVE
WAVEClear
WaveCRC
WaveDims
WaveExists
WaveInfo
WaveList
WaveMax
WaveMeanStdv
WaveMin
WaveName
WaveRefIndexed
WaveRefIndexedDFR
WaveRefsEqual
WaveRefWaveToList
WaveStats
WaveTextEncoding
WaveTransform
WaveType
WaveUnits
wfprintf
WhichListItem
WignerTransform
Window
WindowFunction
WinList
WinName
WinRecreation
WinType
WMAxisHookStruct
WMBackgroundStruct
WMButtonAction
WMCheckboxAction
WMCustomControlAction
WMDrawUserShapeStruct
WMFitInfoStruct
WMGizmoHookStruct
WMListboxAction
WMMarkerHookStruct
WMPopupAction
WMSetVariableAction
WMSliderAction
WMTabControlAction
WMWinHookStruct
wnoise
x
x2pnt
xcsr
XLLoadWave
XWaveName
XWaveRefFromTrace
y
z
zcsr
zeta
ZernikeR
Index
Symbols
Numbers
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
IGOR Pro Version 7 WaveMetrics, Inc.
Updates Please check our website at or the Igor Pro Help menu for minor updates, which we make available for you to download whenever bugs are fixed. If there are features that you would like to see in future versions of Igor or if you find bugs in the current version, please let us know. We’re committed to providing you with a product that does the job reliably and conveniently. Notice All brand and product names are trademarks or registered trademarks of their respective companies. Manual Revision: August 22, 2017 (7.05) © Copyright 2017 WaveMetrics, Inc. All rights reserved. Printed in the United States of America. WaveMetrics, Inc. PO Box 2088 Lake Oswego, OR 97035 USA Voice: FAX: Email: Web: 503-620-3001 503-620-6754 support@wavemetrics.com, sales@wavemetrics.com http://www.wavemetrics.com/
Table of Contents Volume I Volume II Volume III I-1 I-2 Getting Started Introduction to Igor Pro ............................................... I-1 Guided Tour of Igor Pro ............................................. I-11 User’s Guide: Part 1 II-1 Getting Help .................................................................. II-1 II-2 The Command Window .............................................. II-7 II-3 Experiments, Files and Folders ................................ II-15 II-4 Windows ...................................................................... II-37 II-5 Waves ........................................................................... II-55 II-6 Multidimensional Waves .......................................... II-83 II-7 Numeric and String Variables .................................. II-93 II-8 Data Folders ................................................................ II-99 II-9 Importing and Exporting Data ............................... II-115 II-10 Dialog Features ......................................................... II-161 II-11 Tables ......................................................................... II-167 II-12 Graphs ........................................................................ II-209 II-13 Category Plots ........................................................... II-267 II-14 Contour Plots ............................................................ II-277 II-15 Image Plots ................................................................ II-297 II-16 3D Graphics ............................................................... II-317 II-17 Page Layouts ............................................................. II-387 User’s Guide: Part 2 III-1 Notebooks ................................................................... III-1 III-2 Annotations ............................................................... III-33 III-3 Drawing ..................................................................... III-59 III-4 Embedding and Subwindows ................................ III-75 III-5 Exporting Graphics (Macintosh) ............................ III-89 III-6 Exporting Graphics (Windows) ............................. III-95 III-7 Analysis ................................................................... III-101 III-8 Curve Fitting ........................................................... III-149 III-9 Signal Processing .................................................... III-237 III-10 Analysis of Functions ............................................ III-271 III-11 Image Processing .................................................... III-303 III-12 Statistics .................................................................. III-337 III-13 Procedure Windows .............................................. III-349 III-14 Controls and Control Panels ................................. III-365 III-15 Platform-Related Issues ......................................... III-397 III-16 Text Encodings ....................................................... III-409
Volume IV III-17 Miscellany ............................................................... III-439 III-18 Preferences .............................................................. III-453 Programming IV-1 Working with Commands ........................................ IV-1 IV-2 Programming Overview ......................................... IV-21 IV-3 User-Defined Functions .......................................... IV-27 IV-4 Macros ...................................................................... IV-107 IV-5 User-Defined Menus .............................................. IV-117 IV-6 Interacting with the User ...................................... IV-131 IV-7 Programming Techniques ..................................... IV-153 IV-8 Debugging ............................................................... IV-197 IV-9 Dependencies .......................................................... IV-213 IV-10 Advanced Topics .................................................... IV-219 Reference Igor Reference .............................................................. V-1 V-1 Volume V Index
Volume I Getting Started Table of Contents I-1 I-2 Introduction to Igor Pro ............................................... I-1 Guided Tour of Igor Pro ............................................. I-11
Chapter I-1 I-1Introduction to Igor Pro Introduction to Igor Pro ................................................................................................................................. 2 Igor Objects ...................................................................................................................................................... 2 Waves — The Key Igor Concept ........................................................................................................... 2 How Objects Relate ................................................................................................................................ 3 More Objects............................................................................................................................................. 4 Igor’s Toolbox.................................................................................................................................................. 4 Built-In Routines ..................................................................................................................................... 4 User-Defined Procedures........................................................................................................................ 5 Igor Extensions......................................................................................................................................... 5 Igor’s User Interface ....................................................................................................................................... 6 The Command Window ........................................................................................................................ 6 Menus, Dialogs and Commands ........................................................................................................... 7 Using Igor for Heavy-Duty Jobs .................................................................................................................. 7 Igor Documentation........................................................................................................................................ 8 Tool Tips.................................................................................................................................................... 8 The Igor Help System.............................................................................................................................. 8 The Igor Manual....................................................................................................................................... 8 Learning Igor ................................................................................................................................................... 8 Getting Hands-On Experience ...................................................................................................................... 9
Chapter I-1 — Introduction to Igor Pro Introduction to Igor Pro Igor Pro is an integrated program for visualizing, analyzing, transforming and presenting experimental data. Igor Pro’s features include: • Publication-quality graphics • High-speed data display • Ability to handle large data sets • Curve-fitting, Fourier transforms, smoothing, statistics, and other data analysis • Waveform arithmetic • Image display and processing • Combination graphical and command-line user interface • Automation and data processing via a built-in programming environment • Extensibility through modules written in the C and C++ languages Some people use Igor simply to produce high-quality, finely-tuned scientific graphics. Others use Igor as an all-purpose workhorse to acquire, analyze and present experimental data using its built-in program- ming environment. We have tried to write the Igor program and this manual to fulfill the needs of the entire range of Igor users. The Igor application is shipped in both 32-bit and 64-bit versions. We refer to the 64-bit version as “Igor64”. You should use the 64-bit version except for rare cases where compatibility with 32-bit plug-ins is required. Igor Objects The basic objects that all Igor users work with are: • Waves • Graphs • Tables • Page layouts A collection of objects is called an “experiment” and is stored in an experiment file. When you open an experiment, Igor recreates the objects that comprise it. Waves — The Key Igor Concept We use the term “wave” to describe the Igor object that contains an array of numbers. Wave is short for “waveform”. The wave is the most important Igor concept. Igor was originally designed to deal with waveform data. A waveform typically consists of hundreds to thousands of values measured at evenly-spaced intervals of time. Such data is usually acquired from a digital oscilloscope, scientific instrument or analog-to-digital converter card. The distinguishing trait of a waveform is the uniform spacing of its values along an axis of time or other quan- tity. An Igor wave has an important property called “X scaling” that you set to specify the spacing of your data. Igor stores the Y component for each point of a wave in memory but it computes the X component based on the wave’s X scaling. In the following illustration, the wave consists of five data points numbered 0 through 4. The user has set the wave's X scaling such that its X values start at 0 and increment by 0.001 seconds per point. The graph displays the wave's stored data values versus its computed X values. I-2
分享到:
收藏