![](/profiles/wavemetrics/themes/wavemetrics/logo.png)
Save Complex 2D Wave As FixedField
![](/sites/default/files/styles/thumbnail/public/default_images/Artboard%201_1.png?itok=jeHOCIXy)
![](/profiles/wavemetrics/themes/wavemetrics/images/icons/employee-icon.png)
hrodstein
// SaveComplex2DWaveAsFixedField(pathName, fileName, header, cw, fieldWidth, digitsAfterDP, fullPathOut) // Writes a 2D complex wave to a text file using FORTRAN-style fixed field formatting. // To try it, execute this: // MakeTestData(10,5); Test() Function SaveComplex2DWaveAsFixedField(pathName, fileName, header, cw, fieldWidth, digitsAfterDP, fullPathOut) String pathName // Symbolic path name or "" for dialog String fileName // Output file name or "" for dialog String header // Header text to be written to file or "" if none. Should end with CRLF. Wave/C cw Variable fieldWidth Variable digitsAfterDP String &fullPathOut // Output: Full path to saved file or "" if error or user cancels fullPathOut = "" Variable refNum = 0 Open /P=$pathName /T=".dat" refNum as fileName if (GetRTError(0)) return -1 // Error opening file endif if (refNum == 0) return -1 // User cancelled endif FStatus refNum fullPathOut = S_path + S_fileName fprintf refNum, "%s", header Variable numRows = DimSize(cw, 0) Variable numColumns = DimSize(cw, 1) Variable row, column for(row=0; row<numRows; row+=1) for(column=0; column<numColumns; column+=1) String text Variable/C cval = cw[row][column] Variable rVal = real(cval), iVal = imag(cval) fprintf refNum, "%*.*E%*.*E", fieldWidth, digitsAfterDP, rVal, fieldWidth, digitsAfterDP, iVal endfor fprintf refNum, "\r\n" endfor Close refNum return 0 End Function MakeTestData(rows,columns) Variable rows,columns Make /O /C /N=(rows,columns) mat = cmplx(gnoise(1), gnoise(1)) End Function Test() DoWindow/K FixedFieldNotebook String pathName = "Igor" // "" gives dialog String fileName = "FixedField.dat" String header = "This is a test of the SaveComplex2DWaveAsFixedField routine\r\n" String fullPathOut Variable timerRefNum = StartMSTimer Variable result = SaveComplex2DWaveAsFixedField(pathName, fileName, header, mat, 14, 5, fullPathOut) Variable elapsed = StopMSTimer(timerRefNum) / 1E6 if (result == 0) Printf "Elapsed time: %g\r", elapsed OpenNotebook /P=$pathName /N=FixedFieldNotebook /K=1 fullPathOut Notebook FixedFieldNotebook font="Courier New" endif End
![](/sites/default/files/forum.png)
Forum
![](/sites/default/files/support.png)
Support
![](/sites/default/files/gallery.png)
Gallery
Igor Pro 9
Learn More
Igor XOP Toolkit
Learn More
Igor NIDAQ Tools MX
Learn More