Matlab's built in imread (as of 2017) doesn't load animated gifs correctly. You can fix this by changing the line:
map = info.ColorTable;
in /Applications/MATLAB_R2017a.app/toolbox/matlab/imagesci/private/readgif.m with
map = reshape([info(:).ColorTable],[],3,n);
For a single frame indexed image you can use ind2rgb to convert to an rgb image. To do this on entire animated gif. You can use an arrayfun for-loop hack:
[X,M] = imread('input.gif');
Y = cell2mat(permute(arrayfun(@(C) ind2rgb(X(:,:,:,C),M(:,:,C)),1:size(X,4),'UniformOutput',false),[1 4 3 2]));
Update:
Use this instead:
map = zeros(0,3,n);
for j = 1:n
map(1:size(info(j).ColorTable,1),:,j) = info(j).ColorTable;
end