I do not understand what you are saying.What does it mean "there is a way which is slower than" ? Is it a question for me to find a slower way?Now... I tried a lot of different operations and I discovered that it is extremely slow to doA=(mask==num)*255; (1)(casting or not num to uint8 changes less than 0.1%)

I found it insted to be very fast, acceptably for my scope, to doA= uint8(mask==num)*uint8(255); (2)

the difference between the (1) and (2) is 300ms for the first one and 15ms for the second one!!!A factor 20.Very curious indeed.

That works for now.(still wondering wether I can use logical indexing to do something like:aa = (mask==num);maskC(aa,1)= 250;and get the best performances of "vectorialized" matlab)