Simple use of bsxfun

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.

 Accepted Answer

Jan
Jan on 12 Apr 2013
Edited: Jan on 12 Apr 2013
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.

More Answers (0)

Asked:

on 12 Apr 2013

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!