Transposing a table of data

Sorry, I have to post the problem again:

I want to swap rows and columns of a table of data, and I presume that a matrix operation will be the solution. However, I do not seem able to transpose the entire table by a MatrixTranspose command, since this command takes a wave, and not a table, as it's argument. How do I transpose the entire table?

Any help will be greatly appreciated.

Strange
A little more information would be good (screenshot of the 'data').
You could (assuming all data is numeric) collect all data in a 2D wave (using concatenate) and use the matrixop on that wave.
Or you can rearrange 1D (and ONLY 1D) waves one by one like this:
make /N=20 test
test=p
redimension /N=(1,20) test
edit test

Would also work in combination with MatrixTranspose in case there is a text wave containing lables
But display of both wave one below the other will fail as far as I tested.
HJ

PS @ WM: Might be a /VERT flag for edit (like there is for display) a useful thing for a future Igor release?
Hi HJDrescher,

Thanks for your response. Below isa detailed account of my steps:

1. My data is written as delimited text, and I want to plot one row of data against another, as a 2D wave.

2. In Igor, a regular use of Load Delimited Text yields a table as shown in Attachment 1.

3. In Igor, Load Delimited Text with "Load columns into matrix" checked yields a table as shown in Attachment 3.

4.Executing "MatrixTranspose Wave0" yields the transposed table shown in Attachment 2.

5. However, no plotting seems possible from this table.

Hope this clarifies my question.

Strange

So it it more a plotting issue? Loading and transposing seem to work.
Try
make /N=(5,10) test
test[2][]=2*q
test[4][]=q+2
edit test
display test[4][*] vs test[2][*]


In case you want to plot columns against each other, it would be
display test[*][4] vs test[*][2]


Have a look at
displayhelptopic "Subrange Display"
HJ
Thank you for your help. - I think I might be better off by switching rows and columns in the program that produces the data.

Strange
I'm not certain I understand what you're trying to do.

First, just so we're on the same page, in Igor, a table is not data--it's simply a representation of your data. Data is stored in waves, and waves can be displayed in a table, graph, etc. This is different from a spreadsheet like Excel in which case the table/spreadsheet really contains the data.

So, take the following example:
make/n=(10,5) ddd = p + 10*q
edit ddd


Right now, in the table, there are 10 rows and 5 columns. If you want to view the data as 5 rows and 10 columns, click the button at the top right of a table that (to me) looks like a refresh button. It's the one with curved arrows. When you click that, a dialog pops up and you can set it to Display wave columns vertically in table and Display wave rows horizontally in table. Doing this won't change the data in any way, but it will change how it's displayed.

If you actually want to change the data itself, then you can use MatrixTranspose like this:
MatrixTranspose ddd


HJDrescher gave you good advice about how to plot one row/column of a 2D wave against another row/column.

If you're loading your data as multiple 1D waves and you want to create a 2D wave from those 1D waves, you need to use the Concatenate operation. This will pretty much do the same thing as checking the "Load columns into matrix" checkbox in the dialog.

I suspect that it would be worth your time to go through the Guided Tutorial. You can select the Help->Getting Started menu item to get the tutorial, or you can watch them in video form at https://www.wavemetrics.com/products/igorpro/videotutorials.htm