Я уже реализовал функцию, чтобы сделать это, но мне не нравится необходимость в цикле. Однако я не вижу способа избежать петли. Любопытно, есть ли лучший способ сделать это.
function [ colored_img ] = colorImg ( img, ix, c )
% function [ colored_img ] = colorImg ( img, ix, c )
%
% INPUTS
% img - a 3D array representing the image to color.
% ix - the indexes of the pixels to set to a new color.
% c - a vector representing the color to paint the pixels ix.
%
% OUTPUTS
% colored_img - the colored image.
colored_img = img;
for jx = 1 : numel(c);
a = colored_img(:,:,jx);
a(ix) = c(jx);
colored_img(:,:,jx) = a;
end
end