File Exchange

image thumbnail

samesize

version 1.2 (1.55 KB) by

Determine if all inputs are the same size in all dimensions.

0 Downloads

Updated

View License

samesize: takes any number of arrays of any type and returns true if
the dimensions of all the objects are the same

Syntax

result = samesize(A, B, ...)

Description

A, B etc are arrays or matrices of any type. samesize returns true if
they are all the same size in every dimension, and have the same number
of dimensions, or false otherwise

samesize returns true for zero arguments, or a single argument on the
basis that the input will definately be the same size as itself in these
cases.

Example

astruct = struct('a',{1,2,3}); % creates a (1 x 3) struct array
anarray = [1,2,3];
acellarray = {2+6j, [1,2,3,4,5,6,7,8], 'a string'};
samesize(astruct, anarray, acellarray)

>>
 ans =
      1

samesize(astruct, anarray', acellarray)

>>
 ans =
      0

See also: size, ndims

Tested in R2008a and R2011a

Comments and Ratings (4)

Jan Simon

Jan Simon (view profile)

Another hint: ISEQUAL replies a scalar TRUE or FALSE, so there is no need for ALL().

Richard Crozier

@Jan, oh, and thanks for the useful review.

Richard Crozier

@Jan,

Actually, I see now that isequal will return false in this case, so maybe I will just get rid of the first test!

Jan Simon

Jan Simon (view profile)

"any(diff(numdims))" is faster than "numel(unique(numdims)) > 1", but I'd omit the test for equal number of dimensions completely.

The function works as expected, the task is useful, it has a H1-line and a help text with an example and a "See also" line.

Updates

1.2

removed first test for number of dimensions.

1.1

used any(diff(numdims)) suggestion from commenter

MATLAB Release
MATLAB 7.6 (R2008a)
Acknowledgements

Inspired: regexprepfile, strrepfile, refactor_fcn_name

Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.

» Watch video