Writing Results of a Curve Fit to a Notebook
hrodstein
// SendGaussianFitResultsToNB(nb, comment, dataWave, W_coef, W_sigma)
// Demonstrates writing the results of a Gaussian curve fit to a notebook.
// To try it, paste the functions below into the procedure window of a new experiment.
// Now execute this on the command line:
// Demo()
Function SendGaussianFitResultsToNB(nb, comment, dataWave, W_coef, W_sigma)
String nb // Name of notebook, e.g., "Notebook0"
String comment // Comment to be added to the notebook
Wave dataWave // The wave that was fit
Wave W_coef // Output from the CurveFit operation
Wave W_sigma // Output from the CurveFit operation
// If notebook does not exist, create it
if (WinType(nb) == 0)
NewNotebook /N=$nb /F=1
endif
String text = ""
String temp
text += "\r" // Blank line to separate from previous run
text += comment + "\r"
// Handle y0 coefficient
sprintf temp, "y0 = %g +/- %g\r", W_coef[0], W_sigma[0]
text += temp
// Handle amplitude coefficient
sprintf temp, "A = %g +/- %g\r", W_coef[1], W_sigma[1]
text += temp
// Handle x0 coefficient
sprintf temp, "x0 = %g +/- %g\r", W_coef[2], W_sigma[2]
text += temp
// Handle width coefficient
sprintf temp, "width = %g +/- %g\r", W_coef[3], W_sigma[3]
text += temp
// Insert text in notebook
Notebook $nb, text = text
End
Function Demo()
// Create data
Make/O/N=100 gaussian
// Set X scaling
SetScale x -3, 3, gaussian
// Fill with sample data
Wave gaussian
gaussian = exp(-x^2) + gnoise(.1)
// Display in graph
DoWindow/F GaussianGraph
if (V_flag == 0) // Graph does not yet exist
Display /N=GaussianGraph gaussian
endif
// Do the curve fit
CurveFit gauss gaussian /D
Wave W_coef, W_sigma // These are outputs from the fit
// Change the color of the destination wave
ModifyGraph rgb(fit_gaussian) = (0, 0, 65535)
// Add results to the notebook (after creating it if necessary)
String comment = "Fit performed on " + date() + " at " + time()
SendGaussianFitResultsToNB("FitResultsNotebook", comment, gaussian, W_coef, W_sigma)
End
// Demonstrates writing the results of a Gaussian curve fit to a notebook.
// To try it, paste the functions below into the procedure window of a new experiment.
// Now execute this on the command line:
// Demo()
Function SendGaussianFitResultsToNB(nb, comment, dataWave, W_coef, W_sigma)
String nb // Name of notebook, e.g., "Notebook0"
String comment // Comment to be added to the notebook
Wave dataWave // The wave that was fit
Wave W_coef // Output from the CurveFit operation
Wave W_sigma // Output from the CurveFit operation
// If notebook does not exist, create it
if (WinType(nb) == 0)
NewNotebook /N=$nb /F=1
endif
String text = ""
String temp
text += "\r" // Blank line to separate from previous run
text += comment + "\r"
// Handle y0 coefficient
sprintf temp, "y0 = %g +/- %g\r", W_coef[0], W_sigma[0]
text += temp
// Handle amplitude coefficient
sprintf temp, "A = %g +/- %g\r", W_coef[1], W_sigma[1]
text += temp
// Handle x0 coefficient
sprintf temp, "x0 = %g +/- %g\r", W_coef[2], W_sigma[2]
text += temp
// Handle width coefficient
sprintf temp, "width = %g +/- %g\r", W_coef[3], W_sigma[3]
text += temp
// Insert text in notebook
Notebook $nb, text = text
End
Function Demo()
// Create data
Make/O/N=100 gaussian
// Set X scaling
SetScale x -3, 3, gaussian
// Fill with sample data
Wave gaussian
gaussian = exp(-x^2) + gnoise(.1)
// Display in graph
DoWindow/F GaussianGraph
if (V_flag == 0) // Graph does not yet exist
Display /N=GaussianGraph gaussian
endif
// Do the curve fit
CurveFit gauss gaussian /D
Wave W_coef, W_sigma // These are outputs from the fit
// Change the color of the destination wave
ModifyGraph rgb(fit_gaussian) = (0, 0, 65535)
// Add results to the notebook (after creating it if necessary)
String comment = "Fit performed on " + date() + " at " + time()
SendGaussianFitResultsToNB("FitResultsNotebook", comment, gaussian, W_coef, W_sigma)
End
Forum
Support
Gallery
Igor Pro 9
Learn More
Igor XOP Toolkit
Learn More
Igor NIDAQ Tools MX
Learn More