I think the change in header confuses MATLAB. I'm sure it's nothing to do with the Astrometry files :)
I just read in the original files using MATLAB's built-in fitsread() function, which outputs a nice array of pixel values (16bit) for me that I can then manipulate and display as an image. Doing the same on the -new.fits files causes an error ["CFITSIO library error (108): error reading from FITS file"]
Error in matlab.io.fits.readImg (line 85)
imgdata = fitsiolib('read_subset',fptr,fpixel,lpixel,inc);
Error in fitsread>read_image_hdu (line 438)
data = fits.readImg(fptr);
Error in fitsread (line 125)
data = read_image_hdu(info,1,raw,pixelRegion);
Weird.
I've found an alternative fitsread() function [
http://fits.gsfc.nasa.gov/software/fitsread.m] that, with some manipulation (there were bugs), reads the pixel data but for some reason doesn't give me the right numbers. In the original MATLAB fitsread() it gives me numbers between 0 and 65536 or thereabouts, but the alternative fitsread() gives values as -32000ish to +32000ish but not in the same scale, as if there's something strange going on with the BSCALE/BZERO stuff. I'll keep probing and trying to figure out what it's doing.
(FYI: the alternative fitsread() does the same value manipulation for my original .fit files as the Astrometry ones, so I know it's nothing wrong with Astrometry!)
I'm guessing that MATLAB gets confused by something in the WCS header, but I don't know for sure. If I get to the bottom of it, I'll report back.
Simon