<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://entorb.net//wiki/index.php?action=history&amp;feed=atom&amp;title=IGOR_Pro</id>
	<title>IGOR Pro - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://entorb.net//wiki/index.php?action=history&amp;feed=atom&amp;title=IGOR_Pro"/>
	<link rel="alternate" type="text/html" href="https://entorb.net//wiki/index.php?title=IGOR_Pro&amp;action=history"/>
	<updated>2026-05-06T10:28:59Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>https://entorb.net//wiki/index.php?title=IGOR_Pro&amp;diff=4864&amp;oldid=prev</id>
		<title>Torben at 20:28, 30 October 2024</title>
		<link rel="alternate" type="text/html" href="https://entorb.net//wiki/index.php?title=IGOR_Pro&amp;diff=4864&amp;oldid=prev"/>
		<updated>2024-10-30T20:28:21Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[Category:Software]]&lt;br /&gt;
Wave Metrics IGOR Pro&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
Deklarations&lt;br /&gt;
 variable thickness,messstrom&lt;br /&gt;
 String str= &amp;quot;huhu&amp;quot;&lt;br /&gt;
 wave calcHTemp,calcHRdcA&lt;br /&gt;
&lt;br /&gt;
Functions&lt;br /&gt;
 Function Funktion(param1,param2)&lt;br /&gt;
 	variable param1,param2&lt;br /&gt;
 	variable int&lt;br /&gt;
 	return int&lt;br /&gt;
 end&lt;br /&gt;
&lt;br /&gt;
 Function/S Funktion(param1,param2)&lt;br /&gt;
 	variable param1,param2&lt;br /&gt;
 	String str&lt;br /&gt;
 	return str&lt;br /&gt;
 end&lt;br /&gt;
&lt;br /&gt;
Loops&lt;br /&gt;
 if (a==b)&lt;br /&gt;
   [BODY]&lt;br /&gt;
 else&lt;br /&gt;
   [BODY]&lt;br /&gt;
 endif&lt;br /&gt;
 &lt;br /&gt;
 for (i=0;i&amp;lt;numpnts(wave);i=i+1)&lt;br /&gt;
   [BODY]&lt;br /&gt;
 endfor &lt;br /&gt;
&lt;br /&gt;
Menu-Entry&lt;br /&gt;
 menu &amp;quot;MyMacros&amp;quot;&lt;br /&gt;
 	&amp;quot;Eintrag&amp;quot;, Funktion()&lt;br /&gt;
 end&lt;br /&gt;
&lt;br /&gt;
Prompt&lt;br /&gt;
 Prompt thickness, &amp;quot;Dicke der Schicht in Nanometern&amp;quot;&lt;br /&gt;
 Prompt messstrom, &amp;quot;Messstrom in Mikroampere&amp;quot;&lt;br /&gt;
 DoPrompt &amp;quot;Nur eine Kleinigkeit noch . . .&amp;quot;,thickness,messstrom&lt;br /&gt;
&lt;br /&gt;
Strings&lt;br /&gt;
 num2str(dicke*10^9)+&amp;quot;nm&amp;quot;&lt;br /&gt;
 String str = &amp;quot;Hello World&amp;quot;&lt;br /&gt;
 str[0] = &amp;quot;HuHu &amp;quot;&lt;br /&gt;
 -&amp;gt; str = &amp;quot;HuHu Hello World&amp;quot;&lt;br /&gt;
 String str = &amp;quot;Hello World&amp;quot;&lt;br /&gt;
 str[0,4] = &amp;quot;HuHu &amp;quot;&lt;br /&gt;
 -&amp;gt; str = &amp;quot;HuHu World&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
Find a substring&lt;br /&gt;
 strsearch(str, searchStr, start )&lt;br /&gt;
&lt;br /&gt;
===File Access===&lt;br /&gt;
 Variable lauf&lt;br /&gt;
 wave /T filelist&lt;br /&gt;
 NewPath/O MyPath  //  New Path&lt;br /&gt;
 NumOfImages = ItemsInList(IndexedFile(MyPath,-1,&amp;quot;.txt&amp;quot;))&lt;br /&gt;
 Redimension/N=(NumOfImages) filelist&lt;br /&gt;
 for (lauf=0;lauf&amp;lt;NumOfImages;lauf+=1)&lt;br /&gt;
 	filelist[lauf] = IndexedFile(MyPath,lauf,&amp;quot;.txt&amp;quot;)&lt;br /&gt;
 endfor&lt;br /&gt;
 Sort filelist,filelist&lt;br /&gt;
&lt;br /&gt;
==My Toolbox==&lt;br /&gt;
===Main File===&lt;br /&gt;
 #include &amp;quot;m:igor:werkzeugkiste:Waves&amp;quot;&lt;br /&gt;
 #include &amp;quot;m:igor:werkzeugkiste:Graphs&amp;quot;&lt;br /&gt;
 #include &amp;quot;m:igor:werkzeugkiste:Fits&amp;quot;&lt;br /&gt;
 #include &amp;quot;m:igor:werkzeugkiste:Styles&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 menu &amp;quot;Werkzeugkiste&amp;quot;&lt;br /&gt;
 end&lt;br /&gt;
 &lt;br /&gt;
 Function ZeitenAusInfoEinlesen()&lt;br /&gt;
 	LoadWave /J/L={0, 5, 0, 1, 1 }/O/N=Zeiten //P=GreenPath &amp;quot;info.txt&amp;quot;&lt;br /&gt;
 	wave Zeiten0&lt;br /&gt;
 	rename Zeiten0,Zeiten&lt;br /&gt;
 	Wave Zeiten&lt;br /&gt;
 	Zeiten/=1000 //ms -&amp;gt; s&lt;br /&gt;
 	// die ersten Zeiten müssen evtl noch manuel rausgenommen werden&lt;br /&gt;
 	// Zeiten[0] muss dann auf Null gesetzt werden&lt;br /&gt;
 End&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 Function makeNewFolders(anzahl)&lt;br /&gt;
 	Variable anzahl&lt;br /&gt;
 	Variable i&lt;br /&gt;
 	for (i=1;i&amp;lt;=anzahl;i+=1)&lt;br /&gt;
 	String str =&amp;quot;&amp;quot;&lt;br /&gt;
 	if (i&amp;lt;10)&lt;br /&gt;
 		str = &amp;quot;0&amp;quot;&lt;br /&gt;
 	endif&lt;br /&gt;
 	str = str + num2str(i)&lt;br /&gt;
 	NewDataFolder /O $str&lt;br /&gt;
 	endfor&lt;br /&gt;
 End&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 Function /S GetListOfFolderCont(objectType)&lt;br /&gt;
 	Variable objectType //1==Waves, 2==Vars, 3==Strings, 4==Folders&lt;br /&gt;
 	String sourceFolderStr = GetDataFolder(1)&lt;br /&gt;
 	String Liste = &amp;quot;&amp;quot;&lt;br /&gt;
 	Variable i&lt;br /&gt;
 	For(i=0;i&amp;lt;CountObjects(sourceFolderStr, objectType ); i+=1)&lt;br /&gt;
 		Liste += GetIndexedObjName(sourceFolderStr, objectType, i )+&amp;quot;;&amp;quot;&lt;br /&gt;
 	EndFor&lt;br /&gt;
 	Return Liste&lt;br /&gt;
 End&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 Function/S PopUpChooseFolder()&lt;br /&gt;
 	String liste = GetListOfFolderCont(4)&lt;br /&gt;
 	String verz = &amp;quot;&amp;quot;&lt;br /&gt;
 	Prompt verz,&amp;quot;Folder&amp;quot;,popup,liste&lt;br /&gt;
 	DoPrompt &amp;quot;&amp;quot;,verz&lt;br /&gt;
 	if (V_Flag == 1) &lt;br /&gt;
 		return &amp;quot;&amp;quot; &lt;br /&gt;
 	endif &lt;br /&gt;
 	Return verz&lt;br /&gt;
 End&lt;br /&gt;
&lt;br /&gt;
===Waves===&lt;br /&gt;
 menu &amp;quot;Werkzeugkiste&amp;quot;&lt;br /&gt;
 	&amp;quot;ForEach Wave&amp;quot;, ForEachWave()&lt;br /&gt;
 	&amp;quot;Dublicate Waves&amp;quot;, WavesDublizieren()&lt;br /&gt;
 	&amp;quot;Rename Waves&amp;quot;, WavesUmbenennen()&lt;br /&gt;
 	&amp;quot;Delete Waves&amp;quot;, WavesLoeschen()&lt;br /&gt;
 	//findmin, findmax, createx&lt;br /&gt;
 	&amp;quot;Waves -&amp;gt; Matrix&amp;quot;, Waves2Matrix()&lt;br /&gt;
 	&amp;quot;Matrix-Y-Region -&amp;gt; Wave&amp;quot;, Matrix2Wave()&lt;br /&gt;
 	&amp;quot;-&amp;quot;&lt;br /&gt;
 end&lt;br /&gt;
 &lt;br /&gt;
 Function ForEachWave(Cmd)&lt;br /&gt;
 	String Cmd&lt;br /&gt;
 	String WaveNameMatch = &amp;quot;*&amp;quot;&lt;br /&gt;
 	Prompt WaveNameMatch, &amp;quot;Only waves matching:&amp;quot;&lt;br /&gt;
 	String RegExp = &amp;quot;^m..$&amp;quot;&lt;br /&gt;
 	Prompt RegExp, &amp;quot;Regular Expression Filter&amp;quot;&lt;br /&gt;
 	If(StrLen(Cmd)==0)&lt;br /&gt;
 		Cmd += &amp;quot;Display %n%,%n%_smth vs ::%n%xwave_eV;&amp;quot;&lt;br /&gt;
 		Cmd += &amp;quot;ModifyGraph rgb(%n%)=(0,0,0);&amp;quot;&lt;br /&gt;
 		Cmd += &amp;quot;ModifyGraph rgb(%n%_smth)=(65280,0,0);&amp;quot;&lt;br /&gt;
 		&lt;br /&gt;
 //		Cmd += &amp;quot;Duplicate/O %n%,%n%_smth;&amp;quot;&lt;br /&gt;
 //		Cmd += &amp;quot;Smooth 25, %n%_smth;&amp;quot;&lt;br /&gt;
 	EndIf&lt;br /&gt;
 	Prompt Cmd, &amp;quot;Command&amp;quot;&lt;br /&gt;
 	DoPrompt &amp;quot;&amp;quot;, WaveNameMatch,RegExp, Cmd&lt;br /&gt;
 	if (V_Flag)&lt;br /&gt;
 		return -1 // User canceled&lt;br /&gt;
 	endif&lt;br /&gt;
 	String List = GrepList( WaveList(WaveNameMatch,&amp;quot;;&amp;quot;,&amp;quot;&amp;quot;) , RegExp)&lt;br /&gt;
 	Variable i&lt;br /&gt;
 	For (i=0;i&amp;lt;ItemsInList(List);i+=1)&lt;br /&gt;
 		String n = StringFromList(i,List)&lt;br /&gt;
 		String ThisCmd = ReplaceString(&amp;quot;%n%&amp;quot;, Cmd, n)&lt;br /&gt;
 		Execute ThisCmd&lt;br /&gt;
 	EndFor&lt;br /&gt;
 End&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 Function WavesDublizieren()&lt;br /&gt;
 	String WaveNameMatch = &amp;quot;*&amp;quot;&lt;br /&gt;
 	Prompt WaveNameMatch, &amp;quot;Only doublicate waves matching&amp;quot;&lt;br /&gt;
 	String RegExp = &amp;quot;.*&amp;quot;&lt;br /&gt;
 	Prompt RegExp, &amp;quot;Regular Expression Filter&amp;quot;&lt;br /&gt;
 	String TargetFolder = &amp;quot;Copy&amp;quot;&lt;br /&gt;
 	Prompt TargetFolder, &amp;quot;Target Folder&amp;quot;&lt;br /&gt;
 	DoPrompt &amp;quot;&amp;quot;, WaveNameMatch, RegExp, TargetFolder&lt;br /&gt;
 	if (V_Flag)&lt;br /&gt;
 		return -1 // User canceled&lt;br /&gt;
 	endif&lt;br /&gt;
 	String List = GrepList(WaveList(WaveNameMatch,&amp;quot;;&amp;quot;,&amp;quot;&amp;quot;) , RegExp)&lt;br /&gt;
 	If (!DataFolderExists(TargetFolder))&lt;br /&gt;
 		NewDataFolder $TargetFolder&lt;br /&gt;
 	EndIf&lt;br /&gt;
 	Variable i&lt;br /&gt;
 	For (i=0;i&amp;lt;ItemsInList(List);i+=1)&lt;br /&gt;
 		String n = StringFromList(i,List)&lt;br /&gt;
 		String new = &amp;quot;:&amp;quot;+TargetFolder+&amp;quot;:&amp;quot;+n&lt;br /&gt;
 		Duplicate $n, $new&lt;br /&gt;
 	EndFor&lt;br /&gt;
 End&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 Function WavesUmbenennen()&lt;br /&gt;
 	String WaveNameMatch = &amp;quot;*&amp;quot;&lt;br /&gt;
 	Prompt WaveNameMatch, &amp;quot;Only rename waves matching:&amp;quot;&lt;br /&gt;
 	String RegExp = &amp;quot;^.*$&amp;quot;&lt;br /&gt;
 	Prompt RegExp, &amp;quot;Regular Expression Filter&amp;quot;&lt;br /&gt;
 	String Was   = &amp;quot;00&amp;quot;&lt;br /&gt;
 	Prompt Was  , &amp;quot;Replace what&amp;quot;&lt;br /&gt;
 	String Womit = &amp;quot;__&amp;quot;&lt;br /&gt;
 	Prompt Womit, &amp;quot;Replace with&amp;quot;&lt;br /&gt;
 	DoPrompt &amp;quot;&amp;quot;, WaveNameMatch,RegExp, Was, Womit&lt;br /&gt;
 	if (V_Flag)&lt;br /&gt;
 		return -1 // User canceled&lt;br /&gt;
 	endif&lt;br /&gt;
 	String List = GrepList ( WaveList(WaveNameMatch,&amp;quot;;&amp;quot;,&amp;quot;&amp;quot;) , RegExp )&lt;br /&gt;
 	Variable i&lt;br /&gt;
 	For (i=0;i&amp;lt;ItemsInList(List);i+=1)&lt;br /&gt;
 		String oldname = StringFromList(i,List)&lt;br /&gt;
 		String newname = ReplaceString(Was,oldname,Womit)&lt;br /&gt;
 		Wave wo = $oldname&lt;br /&gt;
 		Wave wn = $newname&lt;br /&gt;
 		Rename wo,$newname&lt;br /&gt;
 	EndFor&lt;br /&gt;
 End&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 Function WavesLoeschen()&lt;br /&gt;
 	String WaveNameMatch = &amp;quot;*_smth&amp;quot;&lt;br /&gt;
 	Prompt WaveNameMatch, &amp;quot;Only rename waves matching:&amp;quot;&lt;br /&gt;
 	String RegExp = &amp;quot;.*&amp;quot;&lt;br /&gt;
 	Prompt RegExp, &amp;quot;Regular Expression Filter&amp;quot;&lt;br /&gt;
 	DoPrompt &amp;quot;&amp;quot;, WaveNameMatch,RegExp&lt;br /&gt;
 	if (V_Flag)&lt;br /&gt;
 		return -1 // User canceled&lt;br /&gt;
 	endif&lt;br /&gt;
 	String List = GrepList(WaveList(WaveNameMatch,&amp;quot;;&amp;quot;,&amp;quot;&amp;quot;) , RegExp)&lt;br /&gt;
 	DoAlert 1, &amp;quot;REALLY sure to delete &amp;quot; + num2str(ItemsInList(List)) + &amp;quot;waves???\r &amp;quot; + ReplaceString(&amp;quot;;&amp;quot;,List,&amp;quot; &amp;quot;)&lt;br /&gt;
 	if (V_Flag!=1) // Not &amp;quot;Yes&amp;quot; clicked&lt;br /&gt;
 		return -1 &lt;br /&gt;
 	endif&lt;br /&gt;
 	Variable i&lt;br /&gt;
 	For (i=0;i&amp;lt;ItemsInList(List);i+=1)&lt;br /&gt;
 		String n = StringFromList(i,List)&lt;br /&gt;
 		Wave w = $n&lt;br /&gt;
 		KillWaves w&lt;br /&gt;
 	EndFor&lt;br /&gt;
 End&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 function findmin(data)&lt;br /&gt;
 	wave data&lt;br /&gt;
 	variable i&lt;br /&gt;
 	variable mini =data[0]&lt;br /&gt;
 	variable maxi=data[0]&lt;br /&gt;
 	for (i=1;i&amp;lt;numpnts(data);i=i+1) // hier nicht von i=0&lt;br /&gt;
 		mini=min(mini,data[i])&lt;br /&gt;
 		maxi=max(maxi,data[i])&lt;br /&gt;
 	endfor&lt;br /&gt;
 	return mini&lt;br /&gt;
 end // findmin&lt;br /&gt;
 function findmax(data)&lt;br /&gt;
 	wave data&lt;br /&gt;
 	variable i&lt;br /&gt;
 	variable maxi=data[0]&lt;br /&gt;
 	for (i=1;i&amp;lt;numpnts(data);i=i+1) // hier nicht von i=0&lt;br /&gt;
 		maxi=max(maxi,data[i])&lt;br /&gt;
 	endfor&lt;br /&gt;
 	return maxi&lt;br /&gt;
 end // findmax&lt;br /&gt;
 &lt;br /&gt;
 // Extracts an xwave from an igor combined wave&lt;br /&gt;
 // use: createx(&amp;quot;wave&amp;quot;)&lt;br /&gt;
 function createx(NameDerWave)&lt;br /&gt;
 	String NameDerWave&lt;br /&gt;
 	wave w=$NameDerWave&lt;br /&gt;
 	variable start=leftx(w)&lt;br /&gt;
 	variable delta=deltax(w)&lt;br /&gt;
 	String NameDerXWave = NameDerWave+&amp;quot;x&amp;quot;&lt;br /&gt;
 	Make /N=(numpnts(w)) $NameDerXWave&lt;br /&gt;
 	wave wx = $NameDerXWave&lt;br /&gt;
 	variable index=0&lt;br /&gt;
 	for (index=0;index&amp;lt;numpnts(xaxis);index+=1)&lt;br /&gt;
 		wx[index]=start+ index*delta&lt;br /&gt;
 	endfor&lt;br /&gt;
 end&lt;br /&gt;
 &lt;br /&gt;
 // joins all waves of folder &amp;quot;Waves&amp;quot; into matrix &amp;quot;Matrix&amp;quot;, having the wave# as the x-axis&lt;br /&gt;
 // Sorts waves by name&lt;br /&gt;
 function Waves2Matrix()&lt;br /&gt;
 	if (!DataFolderExists(&amp;quot;waves&amp;quot;))&lt;br /&gt;
 		DoAlert 0,&amp;quot;No child datafolder named waves&amp;quot;&lt;br /&gt;
 		return -1&lt;br /&gt;
 	endif&lt;br /&gt;
 	SetDataFolder(&amp;quot;waves&amp;quot;)&lt;br /&gt;
 	String sWaveListe = WaveList(&amp;quot;*&amp;quot;,&amp;quot;;&amp;quot;,&amp;quot;&amp;quot;)&lt;br /&gt;
 	sWaveListe = SortList(sWaveListe,&amp;quot;;&amp;quot;,16) // case-insensitive alphanumeric sort that sorts wave0 and wave9 before wave10.&lt;br /&gt;
 	Variable numWaves = ItemsInList(sWaveListe,&amp;quot;;&amp;quot;)&lt;br /&gt;
 	&lt;br /&gt;
 	Make /N=(numWaves,0)/O/U/I ::Matrix //unsigned integer&lt;br /&gt;
 	Wave m=::Matrix&lt;br /&gt;
 	&lt;br /&gt;
 	Variable index&lt;br /&gt;
 	for (index=0; index&amp;lt;numWaves; index+=1)&lt;br /&gt;
 		String sWaveName = StringFromList(index, sWaveListe)&lt;br /&gt;
 		Print sWaveName&lt;br /&gt;
 		Wave w = $sWaveName&lt;br /&gt;
 		Variable numpntsInWave = numpnts(w)&lt;br /&gt;
 		If (index==0)&lt;br /&gt;
 			Redimension/N=(-1,numpntsInWave) m&lt;br /&gt;
 		ElseIf(numpntsInWave != dimsize(m,1))&lt;br /&gt;
 			DoAlert 0, &amp;quot;Waves do not have the same number of points!&amp;quot;		&lt;br /&gt;
 			SetDataFolder(&amp;quot;::&amp;quot;)&lt;br /&gt;
 			return -1&lt;br /&gt;
 		EndIf&lt;br /&gt;
 		Variable i&lt;br /&gt;
 		for (i=0;i&amp;lt;numpntsInWave;i+=1)&lt;br /&gt;
 			m[index][i] = w[i]&lt;br /&gt;
 		endfor&lt;br /&gt;
 	endfor&lt;br /&gt;
 	SetDataFolder(&amp;quot;::&amp;quot;)&lt;br /&gt;
 end&lt;br /&gt;
 &lt;br /&gt;
 // joins averages an Y-region of a matrix into a single wave&lt;br /&gt;
 // Matrixname = &amp;quot;Matrix&amp;quot;&lt;br /&gt;
 function Matrix2Wave()&lt;br /&gt;
 	If (!WaveExists(Matrix))&lt;br /&gt;
 		DoAlert 0, &amp;quot;No matrix named \&amp;quot;Matrix\&amp;quot; existing&amp;quot;&lt;br /&gt;
 		Return -1&lt;br /&gt;
 	EndIf&lt;br /&gt;
 	Wave m = Matrix&lt;br /&gt;
 	Variable numXValues = DimSize(m,0)&lt;br /&gt;
 	Variable maxLines = DimSize(m,1)&lt;br /&gt;
 	&lt;br /&gt;
 	Variable loiUp=maxLines-1&lt;br /&gt;
 	Variable LoiDown=0&lt;br /&gt;
 	Prompt loiUp, &amp;quot;Upper Line of Interest&amp;quot;&lt;br /&gt;
 	Prompt loiDown, &amp;quot;Lower Line of Interest&amp;quot;&lt;br /&gt;
 	DoPrompt &amp;quot;&amp;quot;, loiDown,loiUp&lt;br /&gt;
 	if (V_flag != 0)&lt;br /&gt;
 		return -1&lt;br /&gt;
 	endif&lt;br /&gt;
 	If (loiUp&amp;gt;=maxLines)&lt;br /&gt;
 		loiUp=maxLines-1&lt;br /&gt;
 	EndIf	&lt;br /&gt;
 	If(loiUp&amp;lt;loiDown)&lt;br /&gt;
 		Variable var = loiUp&lt;br /&gt;
 		loiUp=loiDown&lt;br /&gt;
 		loiDown=var&lt;br /&gt;
 	EndIf&lt;br /&gt;
 	&lt;br /&gt;
 	Variable numLines = loiUp - loiDown&lt;br /&gt;
 	String nameDerWave = &amp;quot;MatrixRegion&amp;quot; + num2str(loiDown) + &amp;quot;-&amp;quot; + num2str(loiUp) &lt;br /&gt;
 	Make /O/N=(numXValues) $nameDerWave&lt;br /&gt;
 	Wave w = $nameDerWave&lt;br /&gt;
 	w=0&lt;br /&gt;
 	Variable i,j&lt;br /&gt;
 	For (i=0;i&amp;lt;numXValues;i+=1)&lt;br /&gt;
 		For (j=0;j&amp;lt;numLines;j+=1)&lt;br /&gt;
 			w[i] += m[i][j]&lt;br /&gt;
 		EndFor&lt;br /&gt;
 	EndFor&lt;br /&gt;
 end&lt;br /&gt;
&lt;br /&gt;
===Graphs===&lt;br /&gt;
 menu &amp;quot;Werkzeugkiste&amp;quot;&lt;br /&gt;
 	&amp;quot;Plot File&amp;quot;, plotfile()&lt;br /&gt;
 	&amp;quot;Colorize Traces&amp;quot;, colorizeTraces()&lt;br /&gt;
 	&amp;quot;Label Graph&amp;quot;, LabelGraph()&lt;br /&gt;
 	&amp;quot;Add Legend to Graph&amp;quot;, AddLegend()&lt;br /&gt;
 	&amp;quot;Save Graph as PNG&amp;quot;, exportPNG()&lt;br /&gt;
 	&amp;quot;Save Graph as PNG, Screen-Resolution&amp;quot;, exportPNGScreen()&lt;br /&gt;
 	&amp;quot;KillAll&amp;quot;, killAll()&lt;br /&gt;
 	&amp;quot;ForEach Graph&amp;quot;, ForEachGraph()&lt;br /&gt;
 //	&amp;quot;ForEach Graph-Trace&amp;quot;, ForEachGraphTrace()&lt;br /&gt;
 	&amp;quot;-&amp;quot;&lt;br /&gt;
 end&lt;br /&gt;
 &lt;br /&gt;
 function plotfile()&lt;br /&gt;
 	KillWaves /Z xwave, ywave, matrix0, matrix&lt;br /&gt;
 	string file = OpenFileDialog()&lt;br /&gt;
 	if (StrLen(file)==0) // canceled&lt;br /&gt;
 		return -1 &lt;br /&gt;
 	endif	&lt;br /&gt;
 &lt;br /&gt;
 	LoadWave /A=matrix/M/O/G file // /M for Matrix	&lt;br /&gt;
 	rename matrix0,matrix&lt;br /&gt;
 	wave matrix&lt;br /&gt;
 	variable anzSpalten = DimSize(matrix, 1)&lt;br /&gt;
 &lt;br /&gt;
 	if (anzSpalten==1)&lt;br /&gt;
 	rename matrix, xwave&lt;br /&gt;
 	Display xwave&lt;br /&gt;
 	else&lt;br /&gt;
 		if (anzSpalten==2)&lt;br /&gt;
 			make /O /N=(DimSize(matrix, 0)) xwave&lt;br /&gt;
 			make /O /N=(DimSize(matrix, 0)) ywave&lt;br /&gt;
 			variable i=0&lt;br /&gt;
 			for (i=0;i&amp;lt;DimSize(matrix,0);i+=1)&lt;br /&gt;
 				xwave[i]=matrix[i][0]&lt;br /&gt;
 				ywave[i]=matrix[i][1]&lt;br /&gt;
 			endfor&lt;br /&gt;
 	&lt;br /&gt;
 			Display ywave vs xwave&lt;br /&gt;
 		endif&lt;br /&gt;
 		if (anzSpalten&amp;gt;2)&lt;br /&gt;
 //			turnMatrix(&amp;quot;matrix&amp;quot;)&lt;br /&gt;
 			NewImage /F/K=0 matrix ;&lt;br /&gt;
 			ModifyGraph swapXY=1;&lt;br /&gt;
 			ModifyImage matrix ctab= {0,50,Rainbow,1}&lt;br /&gt;
 		endif&lt;br /&gt;
 	endif&lt;br /&gt;
 	KillWaves /Z xwave, ywave, matrix0, matrix&lt;br /&gt;
 end //Plotfile()&lt;br /&gt;
 &lt;br /&gt;
 Function/S OpenFileDialog() // used by Plotfile()&lt;br /&gt;
 	Variable refNum&lt;br /&gt;
 //	String message = &amp;quot;Select a file&amp;quot;&lt;br /&gt;
 	String outputPath&lt;br /&gt;
 	Open/D/R/M=&amp;quot;Choose File&amp;quot; refNum&lt;br /&gt;
 	outputPath = S_fileName&lt;br /&gt;
 	return outputPath&lt;br /&gt;
 End &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 function colorizeTraces()&lt;br /&gt;
 	String traces = TraceNameList(&amp;quot;&amp;quot;, &amp;quot;,&amp;quot;, 1)&lt;br /&gt;
 	//traces = SortList(traces,&amp;quot;,&amp;quot;,16)&lt;br /&gt;
 	Variable numoftraces=ItemsInList(traces,&amp;quot;,&amp;quot;)&lt;br /&gt;
 	Variable i=0&lt;br /&gt;
 	do&lt;br /&gt;
 		String tracename = StringFromList(i, traces,&amp;quot;,&amp;quot;)&lt;br /&gt;
 		if(strlen(tracename)==0)&lt;br /&gt;
 			break&lt;br /&gt;
 		endif&lt;br /&gt;
 		variable r,g,b&lt;br /&gt;
 		String farbcode = colorizeTracesGenColor (i,numoftraces)&lt;br /&gt;
 		r = str2num(StringFromList(0, farbcode,&amp;quot;,&amp;quot;))&lt;br /&gt;
 		g = str2num(StringFromList(1, farbcode,&amp;quot;,&amp;quot;))&lt;br /&gt;
 		b = str2num(StringFromList(2, farbcode,&amp;quot;,&amp;quot;))&lt;br /&gt;
 		ModifyGraph rgb($tracename)=(r,g,b)&lt;br /&gt;
  		i+=1&lt;br /&gt;
 	while(i)&lt;br /&gt;
 	AddLegend()&lt;br /&gt;
 end&lt;br /&gt;
 function /S colorizeTracesGenColor (index,anztraces)&lt;br /&gt;
 	variable index // 0,1,2,3... anztraces-1&lt;br /&gt;
 	variable anztraces&lt;br /&gt;
 	String farbcode = &amp;quot;&amp;quot;&lt;br /&gt;
 	index = mod(index,10)&lt;br /&gt;
 	switch (index)&lt;br /&gt;
 	// color codes taken from the Package KBColorizTraces&lt;br /&gt;
 	case 0:&lt;br /&gt;
 		farbcode = &amp;quot;00000,00000,00000&amp;quot;&lt;br /&gt;
 		break&lt;br /&gt;
 	case 1:&lt;br /&gt;
 		farbcode = &amp;quot;65535,16385,16385&amp;quot;&lt;br /&gt;
 		break&lt;br /&gt;
 	case 2:&lt;br /&gt;
 		farbcode = &amp;quot;000002,39321,00001&amp;quot;&lt;br /&gt;
 		break&lt;br /&gt;
 	case 3:&lt;br /&gt;
 		farbcode = &amp;quot;00000,00000,65535&amp;quot;&lt;br /&gt;
 		break&lt;br /&gt;
 	case 4:&lt;br /&gt;
 		farbcode = &amp;quot;39321,00001,31457&amp;quot;&lt;br /&gt;
 		break&lt;br /&gt;
 	case 5:&lt;br /&gt;
 		farbcode = &amp;quot;48059,48059,48059&amp;quot;&lt;br /&gt;
 		break&lt;br /&gt;
 	case 6:&lt;br /&gt;
 		farbcode = &amp;quot;65535,32768,32768&amp;quot;&lt;br /&gt;
 		break&lt;br /&gt;
 	case 7:&lt;br /&gt;
 		farbcode = &amp;quot;00000,65535,00000&amp;quot;&lt;br /&gt;
 		break&lt;br /&gt;
 	case 8:&lt;br /&gt;
 		farbcode = &amp;quot;16385,65535,65535&amp;quot;&lt;br /&gt;
 		break&lt;br /&gt;
 	case 9:&lt;br /&gt;
 		farbcode = &amp;quot;65535,32768,58981&amp;quot;&lt;br /&gt;
 		break&lt;br /&gt;
 	endswitch&lt;br /&gt;
 	return farbcode&lt;br /&gt;
 end //colorizeTracesGenColor&lt;br /&gt;
 &lt;br /&gt;
 Function LabelGraph()	&lt;br /&gt;
 	String title = &amp;quot;&amp;quot;&lt;br /&gt;
 	String bottom = &amp;quot;&amp;quot;&lt;br /&gt;
 	String left = &amp;quot;&amp;quot;&lt;br /&gt;
 	Prompt title, &amp;quot;Title of Graph&amp;quot;&lt;br /&gt;
 	Prompt bottom, &amp;quot;Label of bottom-axis&amp;quot;&lt;br /&gt;
 	Prompt left, &amp;quot;Label of left-axis&amp;quot;&lt;br /&gt;
 	DoPrompt &amp;quot;&amp;quot;, title, bottom, left&lt;br /&gt;
 	if (V_flag == 1)&lt;br /&gt;
 		return -1&lt;br /&gt;
 	endif&lt;br /&gt;
 	If (! StringMatch(title , &amp;quot;&amp;quot;))&lt;br /&gt;
 		title = &amp;quot;\JR&amp;quot;+title&lt;br /&gt;
 		TextBox/C/N=text_titel/Z=1/D={1,1,0}/A=RT/X=0.00/Y=0.00 title&lt;br /&gt;
 	EndIf&lt;br /&gt;
 	If (! StringMatch(bottom , &amp;quot;&amp;quot;))&lt;br /&gt;
 		Label bottom bottom&lt;br /&gt;
 	EndIf&lt;br /&gt;
 	If (! StringMatch(left , &amp;quot;&amp;quot;))&lt;br /&gt;
 		Label left left&lt;br /&gt;
 	EndIf&lt;br /&gt;
 end&lt;br /&gt;
 &lt;br /&gt;
 Function AddLegend()&lt;br /&gt;
 	Legend/C/N=text_legend/X=0.00/Y=0.00&lt;br /&gt;
 end&lt;br /&gt;
 &lt;br /&gt;
 Function exportPNG()&lt;br /&gt;
 	SavePICT/E=-5/B=288/M/W=(0,0,20,15)&lt;br /&gt;
 End&lt;br /&gt;
 Function exportPNGScreen()//resulution=screen&lt;br /&gt;
 	SavePICT/E=-5/B=72/M/W=(0,0,12,9)&lt;br /&gt;
 End&lt;br /&gt;
 &lt;br /&gt;
 Function killall()&lt;br /&gt;
 	String Filter = &amp;quot;*&amp;quot;&lt;br /&gt;
 	Prompt Filter, &amp;quot;Name Match String&amp;quot;&lt;br /&gt;
 	String RegExp = &amp;quot;^.*$&amp;quot;&lt;br /&gt;
 	Prompt RegExp, &amp;quot;Regular Expression Filter&amp;quot;&lt;br /&gt;
 	String sType //1=graph, 2=table, 4=layout&lt;br /&gt;
 	Prompt sType , &amp;quot;Choose Type?&amp;quot;, popup, &amp;quot;Graphs;Tables;Layouts;All of Them&amp;quot;&lt;br /&gt;
 	DoPrompt &amp;quot;What do you want to kill today?&amp;quot;,sType,Filter,RegExp&lt;br /&gt;
 	If (V_flag==1) // cancel clicked&lt;br /&gt;
 		Return 0&lt;br /&gt;
 	EndIf&lt;br /&gt;
 	Variable Type&lt;br /&gt;
 	If(StringMatch(sType,&amp;quot;Graphs&amp;quot;) )&lt;br /&gt;
 		Type = 1&lt;br /&gt;
 	ElseIf(StringMatch(sType,&amp;quot;Tables&amp;quot;) )&lt;br /&gt;
 		Type = 2&lt;br /&gt;
 	ElseIf(StringMatch(sType,&amp;quot;Layouts&amp;quot;) )&lt;br /&gt;
 		Type = 4&lt;br /&gt;
 	ElseIf(StringMatch(sType,&amp;quot;All of them&amp;quot;) )&lt;br /&gt;
 		Type = 7&lt;br /&gt;
 	EndIF&lt;br /&gt;
 	String allItems = GrepList ( WinList(Filter, &amp;quot;;&amp;quot;,&amp;quot;WIN: &amp;quot;+num2str(Type)) , RegExp)&lt;br /&gt;
 	Variable numOfItems = ItemsInList(allItems)&lt;br /&gt;
 	DoAlert 1, &amp;quot;Are you SURE to delete all &amp;quot;  + num2str(numOfItems)+ &amp;quot; items?&amp;quot;&lt;br /&gt;
 	If (V_flag!=1) // no clicked&lt;br /&gt;
 		Return 0&lt;br /&gt;
 	EndIf&lt;br /&gt;
 	Variable itemCounter&lt;br /&gt;
 	For (itemCounter=0; itemCounter &amp;lt; numOfitems; itemCounter+=1)&lt;br /&gt;
 		String oneitem = StringFromList(itemCounter, allitems, &amp;quot;;&amp;quot;)&lt;br /&gt;
 		DoWindow/K $oneitem&lt;br /&gt;
 	EndFor&lt;br /&gt;
 End&lt;br /&gt;
 &lt;br /&gt;
 Function ForEachGraph()&lt;br /&gt;
 	String GraphNameMatch = &amp;quot;*&amp;quot;&lt;br /&gt;
 	Prompt GraphNameMatch, &amp;quot;Only graph names matching&amp;quot;&lt;br /&gt;
 	String RegExp = &amp;quot;.*&amp;quot;&lt;br /&gt;
 	Prompt RegExp, &amp;quot;Regular Expression Filter&amp;quot;&lt;br /&gt;
 	String Cmd = &amp;quot;&amp;quot;&lt;br /&gt;
 	Cmd += &amp;quot;DoWindow /F %n%&amp;quot;&lt;br /&gt;
 	Prompt Cmd, &amp;quot;Command&amp;quot;&lt;br /&gt;
 	DoPrompt &amp;quot;&amp;quot;, GraphNameMatch,RegExp, Cmd&lt;br /&gt;
 	String List = GrepList ( WinList(GraphNameMatch, &amp;quot;;&amp;quot;,&amp;quot;WIN: 1&amp;quot;) , RegExp)&lt;br /&gt;
 	Variable i&lt;br /&gt;
 	For (i=0; i &amp;lt; ItemsInList(List); i+=1)&lt;br /&gt;
 		String name = StringFromList(i, List, &amp;quot;;&amp;quot;)&lt;br /&gt;
 		String ThisCmd = ReplaceString(&amp;quot;%n%&amp;quot;,Cmd,name)&lt;br /&gt;
 		Execute ThisCmd&lt;br /&gt;
 //		SetAxis left 0,*&lt;br /&gt;
 //		SetAxis bottom 1.45,1.90&lt;br /&gt;
 	EndFor&lt;br /&gt;
 End&lt;br /&gt;
 &lt;br /&gt;
 Function ForEachGraphTrace()&lt;br /&gt;
 	String graphList = WinList(&amp;quot;*&amp;quot;, &amp;quot;;&amp;quot;,&amp;quot;WIN: 1&amp;quot;)&lt;br /&gt;
 	Variable graphCounter&lt;br /&gt;
 	For (graphCounter=0; graphCounter &amp;lt; ItemsInList(graphList); graphCounter+=1)&lt;br /&gt;
 		String NameOfGraph = StringFromList(graphCounter, graphList, &amp;quot;;&amp;quot;)&lt;br /&gt;
 		print NameOfGraph&lt;br /&gt;
 		DoWindow/F $NameOfGraph //bring to front&lt;br /&gt;
 		String traceList = TraceNameList(NameOfGraph, &amp;quot;;&amp;quot;, 1)&lt;br /&gt;
 		Variable traceCounter&lt;br /&gt;
 		For (traceCounter=0; traceCounter &amp;lt; ItemsInList(traceList); traceCounter+=1)&lt;br /&gt;
 			String NameOfTrace&lt;br /&gt;
 		EndFor&lt;br /&gt;
 //		String data = StringFromList(0,traces,&amp;quot;;&amp;quot;)&lt;br /&gt;
 //		String fit = StringFromList(1,traces,&amp;quot;;&amp;quot;)&lt;br /&gt;
 //		String peak1 = StringFromList(2,traces,&amp;quot;;&amp;quot;)&lt;br /&gt;
 //		String peak2 = StringFromList(3,traces,&amp;quot;;&amp;quot;)&lt;br /&gt;
 //		String peak3 = StringFromList(4,traces,&amp;quot;;&amp;quot;)&lt;br /&gt;
 //		ModifyGraph rgb($data)=(0,0,0)&lt;br /&gt;
 //		ModifyGraph rgb($fit)=(65280,43520,0)&lt;br /&gt;
 //		ModifyGraph rgb($peak1)=(65280,0,0)&lt;br /&gt;
 //		ModifyGraph rgb($peak2)=(0,65280,0)&lt;br /&gt;
 //		ModifyGraph rgb($peak3)=(0,0,65280)&lt;br /&gt;
 	endfor&lt;br /&gt;
 end&lt;br /&gt;
 &lt;br /&gt;
===Styles===&lt;br /&gt;
 menu &amp;quot;GraphStyles&amp;quot;&lt;br /&gt;
 	&amp;quot;Intensity vs. Energy&amp;quot;, Style_IvE()&lt;br /&gt;
 	&amp;quot;Intensity vs. Wavelength&amp;quot;, Style_IvL()&lt;br /&gt;
 	&amp;quot;Intensity vs. Time&amp;quot;, Style_IvT()&lt;br /&gt;
 	&amp;quot;Energy vs. Time&amp;quot;, Style_EvT()&lt;br /&gt;
 end&lt;br /&gt;
 &lt;br /&gt;
 Proc Style_Defaults()&lt;br /&gt;
 	PauseUpdate; Silent 1		// modifying window...&lt;br /&gt;
 	ModifyGraph/Z mirror=1&lt;br /&gt;
 	ModifyGraph/Z tick=2&lt;br /&gt;
 	ModifyGraph/Z grid=2,nticks=4,minor=1&lt;br /&gt;
 	ModifyGraph/Z standoff=0&lt;br /&gt;
 EndMacro&lt;br /&gt;
 &lt;br /&gt;
 Proc Style_IvE() : GraphStyle&lt;br /&gt;
 	PauseUpdate; Silent 1		// modifying window...&lt;br /&gt;
 	Style_Defaults()&lt;br /&gt;
 	SetAxis left 0,*&lt;br /&gt;
 	ModifyGraph prescaleExp(left)=-3&lt;br /&gt;
 	Label/Z left &amp;quot;PL Intensity (a.u.)&amp;quot;&lt;br /&gt;
 	Label/Z bottom &amp;quot;Energy (eV)&amp;quot;&lt;br /&gt;
 EndMacro&lt;br /&gt;
 &lt;br /&gt;
 Proc Style_IvL() : GraphStyle&lt;br /&gt;
 	PauseUpdate; Silent 1		// modifying window...&lt;br /&gt;
 	SetAxis left 0,*&lt;br /&gt;
 	ModifyGraph prescaleExp(left)=-3&lt;br /&gt;
 	Style_Defaults()&lt;br /&gt;
 	Label/Z left &amp;quot;PL Intensity (a.u.)&amp;quot;&lt;br /&gt;
 	Label/Z bottom &amp;quot;Wavelength (nm)&amp;quot;&lt;br /&gt;
 EndMacro&lt;br /&gt;
 &lt;br /&gt;
 Proc Style_IvT() : GraphStyle&lt;br /&gt;
 	PauseUpdate; Silent 1		// modifying window...&lt;br /&gt;
 	SetAxis left 0,*&lt;br /&gt;
 	ModifyGraph prescaleExp(left)=-3&lt;br /&gt;
 	Style_Defaults()&lt;br /&gt;
 	Label/Z left &amp;quot;PL Intensity (a.u.)&amp;quot;&lt;br /&gt;
 	Label/Z bottom &amp;quot;Time (s)&amp;quot;&lt;br /&gt;
 EndMacro&lt;br /&gt;
 &lt;br /&gt;
 Proc Style_EvT() : GraphStyle&lt;br /&gt;
 	PauseUpdate; Silent 1		// modifying window...&lt;br /&gt;
 	ModifyGraph/Z mirror=1&lt;br /&gt;
 	ModifyGraph/Z tick=2&lt;br /&gt;
 	ModifyGraph/Z grid=0,nticks=4,minor=1&lt;br /&gt;
 	ModifyGraph/Z standoff=0&lt;br /&gt;
 	Label/Z left &amp;quot;Energy (eV)&amp;quot;&lt;br /&gt;
 	Label/Z bottom &amp;quot;Time (s)&amp;quot;&lt;br /&gt;
 EndMacro&lt;br /&gt;
&lt;br /&gt;
===Fitting=== &lt;br /&gt;
 menu &amp;quot;Werkzeugkiste&amp;quot;&lt;br /&gt;
 	&amp;quot;Gauss-Fit on many waves &amp;quot;, machVieleGaussFits() &lt;br /&gt;
 	&amp;quot;Create Gauss-Curve&amp;quot;, makeGaussPrompt()&lt;br /&gt;
 	&amp;quot;-&amp;quot;&lt;br /&gt;
 end&lt;br /&gt;
 &lt;br /&gt;
 //reads x-scaling from a wave&lt;br /&gt;
 //TODO: read x-scaling from scaled waves&lt;br /&gt;
 function makeGaussPrompt()&lt;br /&gt;
 	// Gauss: offset + amp + Exp(- (x-pos)^2/width)&lt;br /&gt;
 	String NameDesGauss = &amp;quot;gauss1_m01&amp;quot;&lt;br /&gt;
 	Variable offset = 0&lt;br /&gt;
 	Variable amp = 42964&lt;br /&gt;
 	Variable pos = 2.0805&lt;br /&gt;
 	Variable width = 0.13698&lt;br /&gt;
 	Prompt NameDesGauss, &amp;quot;Name of Output Wave&amp;quot;&lt;br /&gt;
 	Prompt offset, &amp;quot;Gauss Parameter 0: Offset&amp;quot;&lt;br /&gt;
 	Prompt amp, &amp;quot;Gauss Parameter 1: Amplitude&amp;quot;&lt;br /&gt;
 	Prompt pos, &amp;quot;Gauss Parameter 2: Position&amp;quot;&lt;br /&gt;
 	Prompt width, &amp;quot;Gauss Parameter 3: Width&amp;quot;&lt;br /&gt;
 	DoPrompt &amp;quot;TITEL&amp;quot;, NameDesGauss, offset, amp, pos, width&lt;br /&gt;
 	if (V_Flag != 0) &lt;br /&gt;
 		return 0 &lt;br /&gt;
 	endif &lt;br /&gt;
 	makeGauss2(NameDesGauss, offset, amp, pos, width)&lt;br /&gt;
 end&lt;br /&gt;
 function makeGauss2(NameDesGauss, offset, amp, pos, width)&lt;br /&gt;
 	String NameDesGauss&lt;br /&gt;
 	Variable offset&lt;br /&gt;
 	Variable amp&lt;br /&gt;
 	Variable pos&lt;br /&gt;
 	Variable width&lt;br /&gt;
 &lt;br /&gt;
 	Variable relBreite = 2&lt;br /&gt;
 	Variable punkte = 128&lt;br /&gt;
 	Variable startx=pos - relBreite*width //relBreite = 5&lt;br /&gt;
 	Variable endx  =pos + relBreite*width&lt;br /&gt;
 	Make /N=(punkte) $NameDesGauss&lt;br /&gt;
 	Wave w = $NameDesGauss&lt;br /&gt;
 	SetScale/I x startx,endx,&amp;quot;&amp;quot;, w&lt;br /&gt;
 	w = offset + amp * Exp(- ((x-pos)/width)^2)&lt;br /&gt;
 end&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 Function machVieleGaussFits()&lt;br /&gt;
 	// Does a Gauss-Fit on all waves in current folder, matching a certain name&lt;br /&gt;
 	// results can be found in Fit_Offset, Fit_Ampl, Fit_Pos, Fit_Width&lt;br /&gt;
 	String MatchName = &amp;quot;*&amp;quot;&lt;br /&gt;
 	Prompt MatchName , &amp;quot;Wave names matching:&amp;quot;&lt;br /&gt;
 	String RegExp = &amp;quot;^.*$&amp;quot;&lt;br /&gt;
 	Prompt RegExp, &amp;quot;Regular Expression Filter&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 	DoPrompt &amp;quot;Filter Waves&amp;quot;, MatchName, RegExp&lt;br /&gt;
 	If (V_flag==1)&lt;br /&gt;
 		return -1&lt;br /&gt;
 	EndIf&lt;br /&gt;
 	&lt;br /&gt;
 	String Liste = SortList (GrepList (  WaveList(MatchName,&amp;quot;;&amp;quot;,&amp;quot;&amp;quot;) , RegExp) , &amp;quot;;&amp;quot; , 2 )&lt;br /&gt;
 	Variable AnzWaves = itemsinlist(Liste)&lt;br /&gt;
 	Make /O/N=(AnzWaves) Fit_Offset ; Wave Fit_Offset ; Fit_Offset=0&lt;br /&gt;
 	Make /O/N=(AnzWaves) Fit_Ampl   ; Wave Fit_Ampl   ; Fit_Ampl=0&lt;br /&gt;
 	Make /O/N=(AnzWaves) Fit_Pos    ; Wave Fit_Pos    ; Fit_Pos=0&lt;br /&gt;
 	Make /O/N=(AnzWaves) Fit_Width  ; Wave Fit_Width  ; Fit_Width=0&lt;br /&gt;
 	If (DataFolderExists (&amp;quot;tempfit&amp;quot;))&lt;br /&gt;
 		DoAlert 0, &amp;quot;DataFolder \&amp;quot;tempfit\&amp;quot; does already exist, so quitting&amp;quot;&lt;br /&gt;
 		return -1&lt;br /&gt;
 	EndIf&lt;br /&gt;
 	NewDataFolder /S/O tempfit&lt;br /&gt;
 	Variable i&lt;br /&gt;
 	For (i=0;i&amp;lt;AnzWaves;i+=1)&lt;br /&gt;
 		String name = &amp;quot;::&amp;quot; + StringFromList(i,Liste)&lt;br /&gt;
 		Wave w = $name&lt;br /&gt;
 		CurveFit/N/M=0/W=0/Q gauss, w&lt;br /&gt;
 		Wave W_coef&lt;br /&gt;
 		Fit_Offset[i] = W_coef[0]&lt;br /&gt;
 		Fit_Ampl[i]   = W_coef[1]&lt;br /&gt;
 		Fit_Pos[i]    = W_coef[2]&lt;br /&gt;
 		Fit_Width[i]  = W_coef[3]&lt;br /&gt;
 	EndFor&lt;br /&gt;
 	SetDataFolder ::&lt;br /&gt;
 	KillDataFolder tempfit&lt;br /&gt;
 End&lt;/div&gt;</summary>
		<author><name>Torben</name></author>
	</entry>
</feed>