Ok, iget it myself :
It seems that when we do (num <> 1)
GIF_file = dir([PathName, '*velocity*.gif']);
[im, map] = imread([GIF_file.folder, '\', GIF_file.name], 'frames', num);
'map' is always the colormap of the first image of the animated GIF. So, it's better to do :
infos = imfinfo([GIF_file.folder, '\', GIF_file.name], 'gif');
[im, map] = imread([GIF_file.folder, '\', GIF_file.name], 'frames', num);
imshow(im)
colormap(infos(num).ColorTable)
In this way, i get the good result for each frame of the animated GIF.