diff --git a/npy-matlab/readNPY.m b/npy-matlab/readNPY.m index 9095d00..b8a7ed0 100644 --- a/npy-matlab/readNPY.m +++ b/npy-matlab/readNPY.m @@ -15,12 +15,16 @@ fid = fopen(filename, 'r', 'b'); end +ishalf = strcmp(dataType, 'half'); +if ishalf; dataType = 'uint16'; end + try [~] = fread(fid, totalHeaderLength, 'uint8'); % read the data data = fread(fid, prod(shape), [dataType '=>' dataType]); + if ishalf; data = half.typecast(data); end if length(shape)>1 && ~fortranOrder data = reshape(data, shape(end:-1:1)); diff --git a/npy-matlab/readNPYheader.m b/npy-matlab/readNPYheader.m index 7776de5..d013cb4 100644 --- a/npy-matlab/readNPYheader.m +++ b/npy-matlab/readNPYheader.m @@ -22,8 +22,8 @@ try - dtypesMatlab = {'uint8','uint16','uint32','uint64','int8','int16','int32','int64','single','double', 'logical'}; - dtypesNPY = {'u1', 'u2', 'u4', 'u8', 'i1', 'i2', 'i4', 'i8', 'f4', 'f8', 'b1'}; + dtypesMatlab = {'uint8','uint16','uint32','uint64','int8','int16','int32','int64','half','single','double','logical'}; + dtypesNPY = {'u1', 'u2', 'u4', 'u8', 'i1', 'i2', 'i4', 'i8', 'f2', 'f4', 'f8', 'b1'}; magicString = fread(fid, [1 6], 'uint8=>uint8');