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
Richard Crozier (2021). samesize (https://www.mathworks.com/matlabcentral/fileexchange/36636-samesize), MATLAB Central File Exchange. Retrieved .
Inspired: regexprepfile, strrepfile, refactor_fcn_name
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!Create scripts with code, output, and formatted text in a single executable document.
Another hint: ISEQUAL replies a scalar TRUE or FALSE, so there is no need for ALL().
@Jan, oh, and thanks for the useful review.
@Jan,
Actually, I see now that isequal will return false in this case, so maybe I will just get rid of the first test!
"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.