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 do A=(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 do A= 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)