I have a 3D array of temperature data that looks like this:
Z = rand(3,4,8);
It contains 8 slices of data on a 3×4 grid. For each point in the 3×4 grid I have an index that correspond to a slice the third dimension:
ind = randi(8,[3 4])
How do I create a 3×4 surface of values in Z given by the indices ind? I could do it manually like this:
s(1,1) = Z(1,1,ind(1,1)); s(1,2) = Z(1,2,ind(1,2)); s(1,3) = Z(1,3,ind(1,3)); ...s(3,4) = Z(3,4,ind(3,4));
But my Z matrix is 500x500x100, so doing it manually is out of the question. I'm sure I can avoid a loop here somehow.
Best Answer