how to plot contour (x column, y row, z others)

Hi I am really a newer, now I want to create a density contour plot, I want to do like this: first column are the x values, first row are the Y values, and others are the Z values. How to do that?
BTW, if my data for the first column are uneven, then can I create a contour plot yet?
Many thanks!
You will have to extract your X and Y waves out of the matrix and convert them to 1D waves.

Your X and Y waves can be uneven but they must be monotonic.

Here is an example that illustrates what you need to do, if I understood your situation correctly:

Function Test()
    // Make sample data - a 50x50 matrix with X and Y columns at start
    Make/O/N=(51,51) mat
    mat = 3 * exp(-(p-25)^2/400 - (q-25)^2/400)
    mat[][0] = p        // x data
    mat[0][] = q        // y data

    // Extract X data from matrix
    Duplicate/O/R=[0,*][0,0] mat, xData     // Extract column 0
    Redimension /N=(numpnts(xData)) xData   // Convert to 1D
   
    // Extract X data from matrix
    Duplicate/O/R=[0,0][0,*] mat, yData     // Extract row 0
    Redimension /N=(numpnts(yData)) yData   // Convert to 1D
   
    // Delete X column
    DeletePoints/M=1 0, 1, mat
   
    // Delete Y column
    DeletePoints/M=0 0, 1, mat
   
    // Create a contour plot
    Display;AppendMatrixContour mat vs {xData,yData}
End


By the way, the * in the Duplicate operation means "the last row of the matrix" or "the last column of the matrix." Here is how to read this command:
Duplicate/O/R=[0,*][0,0] mat, xData


"Duplicate mat from row 0 through the last row and from column 0 to column 0 and put the result in xData."

And here is how to read this command:
Duplicate/O/R=[0,0][0,*] mat, yData     // Extract row 0


"Duplicate mat from row 0 through row 0 and from column 0 to the last column and put the result in yData."

You can also use [] to mean "all rows" so this also works:
Duplicate/O/R=[][0,0] mat, xData


You can also use [] to mean "all columns" so this also works:
Duplicate/O/R=[0,0][] mat, yData        // Extract row 0