MATLAB: Finding elements in column that meet some criteria

matching valuesmatrix. vlooksort

Hello,
I have a matrix that has 3 columns and 186 rows. Values are something like this:
Velocity X Y
6.73568234861034 0 500
6.73568234861034 2000 520
6.73568234861034 -2000 540
6.73568234861034 4000 560
6.76077918572001 0 580
6.76071354732644 6000 600
I need to transform this into matrix that will be like this
X Z Velocity
X and Z have to start from 0 and go up to maximum (8000 for x and 600 for z). This was easy. I used "sort" function, so I took care of X and Z columns.
However, now I need to figure out how to copy "Velocity" values from the first table into the second, but in a way that "Velocity" values correspond to the right value of X and Z. I guess I could use "for" loops with "if" statements, but I was wondering is there any other (easier) way; just using built-in functions?
Could you please help me with this?
Thanks, DjR

Best Answer

M=sortrows([m(:,2:3) m(:,1)],[1 2]);
Presuming m is original array w/o the header line and your "Z" is really "Y"
Or, the explicit column rearrangement can be written in a "more Matlaby" manner, and the result as
M=sortrows(circshift(m,[0 -1]),[1 2]);
Related Question