I got it working. I didn't use reshape(). The real problem was correctly taking the data from the 2D spreadsheet (294x5) and forming a 4D array (2x3x7x7) from it. For other noobs who have the same problem, here's what I did.
I used Excel to sort by column 1, then by column 2, 3 and 4. (The dependent variable is in column 5). Then I put the data into Matlab (as a 2D array "2Ddata") and ran a nested loop to build up the 4D array, as follows:
for ia=1:2
for ib=1:3
for ic=1:7
for id=1:7
row=(ia-1)*147+(ib-1)*49+(ic-1)*7+id;
4D_array(ia,ib,ic,id)=2Ddata(row,5);
end
end
end
end
v=4D_array;
The equation for "row" took a little thinking, but this worked and my interpolation is now giving correct results.