Add a trace and update the average trace
RGerkin
Make /o Test1=gnoise(1),Test2=gnoise(2),Test3=gnoise(3),Test4=gnoise(4),Test5=gnoise(5)
Display Test1,Test2
ControlBar /T 30
Variable /G traceNum=2
SetVariable traceNum,value=traceNum,title="#"
Button myButton, proc=AddTraceAndAverage, title="Add"
Display Test1,Test2
ControlBar /T 30
Variable /G traceNum=2
SetVariable traceNum,value=traceNum,title="#"
Button myButton, proc=AddTraceAndAverage, title="Add"
And then have a function like this in your procedure file.
Function AddTraceAndAverage(ctrlName)
String ctrlName
NVar traceNum
AppendToGraph $("Test"+num2str(traceNum))
String traces=TraceNameList("",";",1)
Variable i,count=0,displayAvg=1
for(i=0;i<ItemsInList(traces);i+=1)
String trace=StringFromList(i,traces)
if(StringMatch(trace,"Avg")) // Average already displayed.
displayAvg=0 // Don't display it again.
continue
endif
Wave w=$trace
if(i==0)
Duplicate /o w,Avg // The average will have the same length and scaling as the first trace.
else
Avg+=w
endif
count+=1
endfor
Avg /= count // Turn a sum into an average.
if(displayAvg) // Display the average?
AppendToGraph Avg
endif
End
String ctrlName
NVar traceNum
AppendToGraph $("Test"+num2str(traceNum))
String traces=TraceNameList("",";",1)
Variable i,count=0,displayAvg=1
for(i=0;i<ItemsInList(traces);i+=1)
String trace=StringFromList(i,traces)
if(StringMatch(trace,"Avg")) // Average already displayed.
displayAvg=0 // Don't display it again.
continue
endif
Wave w=$trace
if(i==0)
Duplicate /o w,Avg // The average will have the same length and scaling as the first trace.
else
Avg+=w
endif
count+=1
endfor
Avg /= count // Turn a sum into an average.
if(displayAvg) // Display the average?
AppendToGraph Avg
endif
End
Forum
Support
Gallery
Igor Pro 9
Learn More
Igor XOP Toolkit
Learn More
Igor NIDAQ Tools MX
Learn More