## bsxarg

version 1.0.0.0 (4.9 KB) by
bsxarg returns the physically expanded arrays associated with bsxfun

Updated Mon, 11 Feb 2008 08:11:00 +0000

bsxarg returns the singleton expanded arrays that are virtually used in bsxfun. bsxarg is limited to a maximum of 12 dimensions. The MATLAB intrinsic function bsxfun performs binary operations on input arrays, where singleton dimensions are virtually expanded to perform the operation. bsxarg will actually do the singleton expansion and return the physically expanded arrays.

Building (one-time only):

>> mex -setup
(then follow instructions to select a C / C++ compiler of your choice)
>> mex bsxarg.c

Syntax

[C D] = bsxarg(A,B)

Description

C = the expanded version of A.
D = the expanded version of B.

Each dimension of A and B must either be equal to each other, or equal to 1. Whenever a dimension of A or B is singleton (equal to 1), the array is virtually replicated along the dimension to match the other array. The array may be diminished if the corresponding dimension of the other array is 0.

The size of the output arrays C and D are equal to:

max(size(A),size(B)).*(size(A)>0 & size(B)>0).

User's with older versions of MATLAB that do not have the MATLAB intrinsic bsxfun available to them can use this simple m-file to get that capability:

function C = bsxfun(fun,A,B)
if( nargin ~= 3 )
error('Need 3 arguments for bsxfun')
end
[AX BX] = bsxarg(A,B);
if( ischar(fun) )
C = eval([fun '(AX,BX)']);
else
C = fun(AX,BX);
end
return
end

### Cite As

James Tursa (2022). bsxarg (https://www.mathworks.com/matlabcentral/fileexchange/18686-bsxarg), MATLAB Central File Exchange. Retrieved .

##### MATLAB Release Compatibility
Created with R2006a
Compatible with any release
##### Platform Compatibility
Windows macOS Linux