Make Wave function trouble shooting
meraculin
Hi, I am an undergrad new to Igor. Sorry for my awful programming.
I want to automate creating many histograms, but my code seems to always make the same graph.
I assume its because every iteration refers to the latest histogram iteration, but I don't know how to fix it.
My code assumes that all the waves are written in default (as in wave1, wave2, wave3, ...)
Thank you.
function MMHist(variable initialWave,variable finalWave)
variable i
for(i=initialWave;i<=finalwave;i++)
wave nextWave = $"wave" + num2str(i)
wave $nextWave_Hist
Make/N=100/O nextWave_Hist
Histogram/B={0,4,100} nextWave, nextWave_Hist
wave nextnextWave = nextWave_Hist
Display nextnextWave
endfor
end
variable i
for(i=initialWave;i<=finalwave;i++)
wave nextWave = $"wave" + num2str(i)
wave $nextWave_Hist
Make/N=100/O nextWave_Hist
Histogram/B={0,4,100} nextWave, nextWave_Hist
wave nextnextWave = nextWave_Hist
Display nextnextWave
endfor
end
Hi,
You put the results into the same destination so they in essence get over written with the latests data.
One option:
So It creates a new wave for the histogram with a number suffix to match input and references it as nextwave_hist. It then displays that wave.
variable i
for(i=initialWave;i<=finalwave;i++)
wave nextWave = $"wave" + num2str(i)
Make/N=100/O $("nextWave_Hist"+ num2str(i))
wave nextWave_Hist =$("nextWave_Hist"+ num2str(i))
Histogram/B={0,4,100} nextWave, nextWave_Hist
Display nextWave_Hist
endfor
end
Andy
August 29, 2022 at 08:07 am - Permalink
OMG that was so simple... thank you so much Andy.. really need to improve my programming
August 29, 2022 at 08:50 am - Permalink
Hi,
It is all part of the learning process. And we all could benefit for improving our programming skills-always.
Andy
August 29, 2022 at 10:11 am - Permalink