MATLAB: Simple use of bsxfun

arrayfunbsxfungpuParallel Computing Toolbox

I am having trouble doing simple vectorization operations for GPU using bsxfun and arrayfun.
For example, How would I do this operation on a GPU :
X(X>num)=num
I tried :
X = bsxfun(@gt, X, num)
Then I am stuck at the assignment. I am guessing the ternary operations are not possible?
Thank you so much for helping out.

Best Answer

Tjhere is no reason to use bsxfun here, because X(X > num) = num is sufficient already. An alternative:
X = min(X, num);
bsxfun is useful, when an elementwise operation between a matrix and a vector should be performed and the vector needs to be "inflated" for this.