changing Xscale in 2D wave to nonlinear fomat

Hello, 

I am getting the hang of Igor Pro but the task that I am trying to rescale a wave that is way out of the scope of my mathematic ability. I essentially want to change the delta of the rows to start at -0.4, peak at 1 and then go back down and end at -0.4, with increments of 0.02 (based on delta pattern from another wave in my data). This is essentially a symmetric triangle wave and from what Ive read online it involves some sort of fourier transformation formula with cos or sinc. I have very poor math skills and therefore have a lot of trouble coming up with the right formula. Can anyone help me out? I hope I was clear, if not please let me know so I can elaborate. 

 

static function changeDeltax()
    make /O /N=(140,12) TestWave=enoise(2,1)
    SetScale /P y, 0, 0.1, TestWave
    SetScale /P x, -0.4, 0.02, TestWave //I know this is not correct but I want increments to go: -0.4-->1-->-0.4
    NewWaterFall TestWave //to visualize dimension scaling only
end    

Thanks in advance for any suggestions! 

Wave scaling must be monotonic and uniformly spaced.  You will need to use a second wave whose values hold the scaling; this wave can be used for creating plots or doing calculations.  

If this doesn't address your question, please elaborate.

@jtigor, thanks for your suggestion. I thought about that as well but I want to ideally use the matrix for an image plot. When producing an image plot (Windows-->New--> ImagePlot), the dialog would only allow me to choose a Z wave and only had the calculated option for x and y waves. Do you know how to get around this? 

 

I am not sure I follow your variation of delta but let's take it step by step:

1.  Create a DP output image of NxM points:

Make/N=(N,M)/D myImage

2.  write an interpolation function:

myImage=myInterpolationFunction(p,q,srcImage)

3.  The interpolation function itself would look something like this:

myInterpolationFunction(pp,qq,srcImage)
Variable pp,qq
Wave srcImage

  Variable xx=myNonLinearFunction(pp)  
  Variable yy=myNonLinearFunction(qq)
  return interp2D(srcImage,xx,yy)
End

Clearly you will have to code your delta and offset in the non-linear functions.

 

I hope this helps,

 

A.G.