Load All Matrix Files From Folder


Menu "Load Waves"
	"Load All .dat Matrix Files From Folder", LoadAllMatrixFilesFromFolder("", ".dat", 0)
End

//	LoadAllMatrixFilesFromFolder(pathName, extension, makePlots)
//	This function loads each matrix file in a given file folder into Igor.
//	pathName is the name of an Igor symbolic path or "" to get a dialog.
//	The name of each matrix file is assumed to end with the specified file name extension.
//	The output wave name is the file name less the extension.
//	If makePlots is true, a new image plot is created for each matrix.
//
//	NOTE: You may need to change the LoadWave command to fit your file format.
//	Use Data->Load Waves->Load Waves to find the right command and then adjust the LoadWave command below.

Function LoadAllMatrixFilesFromFolder(pathName, extension, makePlots)
	String pathName				// Name of an Igor symbolic path or "" to get a dialog
	String extension					// File name extension - e.g., "txt" or ".dat"
	Variable makePlots				// 1 to display each matrix in a plot
	
	if (strlen(pathName) == 0)
		NewPath/O/M="Choose a folder containing Matrix Files" LoadIndexedMatrixPath
		if (V_flag != 0)
			return -1				// User cancelled
		endif
		pathName = "LoadIndexedMatrixPath"
	endif
	
	String fileName
	Variable index
	
	index = 0
	do
		fileName = IndexedFile($pathName, index, extension)
		if (strlen(fileName) == 0)
			break			// No more files.
		endif
		
		String matrixName = CleanupName(fileName, 0)
		Variable existsCode = exists(matrixName)
		if (existsCode!=0 && existsCode!=1)
			// matrixName conflicts with some name other than a wave name so make it unique
			matrixName = UniqueName(matrixName, 1, 0)
		endif
		
		String columnInfoStr
		sprintf columnInfoStr, "N='%s';", matrixName
		
		LoadWave/G/D/P=$pathName/O/M/B=columnInfoStr fileName
		Wave matrix = $matrixName			// Create a wave reference
		
		if (makePlots)
			NewImage matrix
		endif
			
		index += 1
	while (1)
End

It is the very procedure I am now seeking. My matrix files (.spe) are generated by Princeton Instruments Camera.
I understand that I have to load .spe files instead of .dat by using this useful procedure "Load All .dat Matrix Files From Folder", and I also noticed that there was a procedure "Winspec.ipf" or "SpeLoader.ipf" available.It can help load .spe files. http://www.igorexchange.com/node/2756
My question here is how to combine these two together to get a new procedure to directly load .spe files. Many thanks.


Make some changes before you have to.

Forum

Support

Gallery

Igor Pro 10

Learn More

Igor XOP Toolkit

Learn More

Igor NIDAQ Tools MX

Learn More