Batch Math program problem

I am writing a program to perform batch wave arthmitic and am running into issues with the coding.

The basic idea is I have 2 sets of waves: {wave0,....wave49} and {wave50,...,wave99}, and want to calculate

Absorb=-ln(wave0/wave50) etc.


The main issue is how do I use a variable to define a string name?

I tried: string Aname="wave"+(A0+ii)

but igor didn't like that. I have placed the code below


function Absorbance(A0,B0,AL)
 
    variable A0,B0,AL
    variable ii
 
    for(ii=0;ii<AL;ii+=1)
        wave Absorb
        
        string Aname="wave"+(A0+ii)
        string Bname="wave"+(B0+ii)
        string AbsorbName="Absorb"+(A0+ii)
        
        Absorb=-ln($Aname/$Bname)
        
        duplicate/o Absorb $AbsorbName
    
    endfor
 
end
The numeric value needs to be converted to a string for your use
string Aname = "wave" + num2str(A0 + ii)

but you will also need a reference to the waves before you can use them
Wave wA = $Aname
Wave wB = $Bname

then this work
Absorb = -ln(wA/wB)

By the way this really should have been posted in the General Forum

Forum

Support

Gallery

Igor Pro 10

Learn More

Igor XOP Toolkit

Learn More

Igor NIDAQ Tools MX

Learn More