Sum Scaled Waves of Different Lengths

This function sums scaled waves of different lengths.

dwave = destination wave
wlist = string list of waves to sum

Different lengths are handled by the Interpolate2 operation.

Example
Make three waves using the table edit. Assume they are named wave0, wave1, and wave2 with 6, 3, and 9 points respectively. Add data to the waves. Execute the following three commands on the command line.


SetScale/P x 1,0.5,"", wave2
SetScale/P x 0,2,"", wave1
SumWavesInX(wave2,"wave0;wave1;")


Function



Function SumWavesInX(dwave, wlist)
	wave dwave
	string wlist
	
	variable ic, np, nt, sn
	string theOne
	
	nt = ItemsInList(wlist)
	duplicate/O dwave tmp_dwave, tmp_swave
	tmp_dwave=0
	tmp_swave=0
	np = numpnts(dwave)
	for (ic=0;ic<nt;ic+=1)
		theOne = StringFromList(ic,wlist)
		wave swave = $theOne
		sn = numpnts(swave)
		if (sn!=np)
			interpolate2/I=3/Y=tmp_swave swave
		else
			tmp_swave = swave
		endif
		tmp_dwave+=tmp_swave
	endfor
	dwave = tmp_dwave
	killwaves/Z tmp_dwave, tmp_swave
	return 0
end

Forum

Support

Gallery

Igor Pro 10

Learn More

Igor XOP Toolkit

Learn More

Igor NIDAQ Tools MX

Learn More