ind2rgb関数がそのものズバリの機能となります。ドキュメントで言うところのmapを自分で作るのは結構大変なので、mapは既存のカラーマップをベースにするといいのかなと思います。
例えばautumnのカラーマップを使ってグレースケール画像に色をつけるのはこのように書きます。
num_color = 16; % 16階調
cmap = autumn(num_color); % カラーマップ
img = imadjust(imread("pout.tif")); % グレースケール画像の準備
imshow(img);
q_img = uint8(im2double(img)*(num_color-1)); % num_colorと同じ数に量子化
rgb = ind2rgb(q_img,cmap); % autumnベースで色を付ける
imshow(rgb);