User`s guide
11 Functions — Alphabetical List
11-12
bsxfun
Binary singleton expansion function for gpuArray
Syntax
C = bsxfun(FUN,A,B)
Description
bsxfun with gpuArray input is similar in behavior to the MATLAB function bsxfun,
except that the actual evaluation of the function, FUN, happens on the GPU, not on the
CPU.
C = bsxfun(FUN,A,B) applies the element-by-element binary operation specified by
the function handle FUN to arrays A and B, with singleton expansion enabled. If A or
B is a gpuArray, bsxfun moves all other required data to the GPU and performs its
calculation on the GPU. The output array C is a gpuArray, which you can copy to the
MATLAB workspace with gather.
For more detailed information, see “Run Element-wise MATLAB Code on GPU” on page
9-13. For the subset of the MATLAB language that is currently supported by bsxfun on
the GPU, see “Supported MATLAB Code” on page 9-15.
The corresponding dimensions of A and B must be equal to each other, or equal to one.
Whenever a dimension of A or B is singleton (equal to 1), bsxfun virtually replicates the
array along that dimension to match the other array. In the case where a dimension of
A or B is singleton and the corresponding dimension in the other array is zero, bsxfun
virtually diminishes the singleton dimension to 0.
The size of the output array C is such that each dimension is the larger of the two input
arrays in that dimension for nonzero size, or zero otherwise. Notice in the following code
how dimensions of size 1 are scaled up or down to match the size of the corresponding
dimension in the other argument:
R1 = rand(2,5,4,'gpuArray');
R2 = rand(2,1,4,3,'gpuArray');
R = bsxfun(@plus,R1,R2);