sub2allind
idx = sub2allind(sz, sub1, sub2, sub3, ... )
Like Matlab's sub2ind, sub2allind computes the equivalent linear indices for
given subscripts of an array with size SZ.
Unlike sub2ind, it computes a field of all combinations of
subscripts. So, instead of calling A( 2:3, 1, 4:11) you might
use
linIdx = sub2allind( size(A), 2:3, 1, 4:11 );
and then call A(linIdx) or A(linIdx(:)) or you reshape linIdx the way you need.
This is usefull whenever you want to access a subset of an array and compare it with a differently shaped thing, like
A(linIdx(:)) = A(linIdx(:)) + <1D-Vector>
Using the naked colon operator is allowed to reference an entire dimension:
linIdx = sub2allind( sz, :, sub2 );
Cite As
Michael Völker (2026). sub2allind (https://se.mathworks.com/matlabcentral/fileexchange/30096-sub2allind), MATLAB Central File Exchange. Retrieved .
MATLAB Release Compatibility
Platform Compatibility
Windows macOS LinuxCategories
Tags
Acknowledgements
Inspired: CATPAD, N-dimensional sparse arrays
Discover Live Editor
Create scripts with code, output, and formatted text in a single executable document.
| Version | Published | Release Notes | |
|---|---|---|---|
| 1.5.0.0 | Added H1 line; fixed bug when asking for a column of indices only |
||
| 1.4.0.0 | * shape of output fits the adressed field now
|
||
| 1.1.0.0 | * Implemented colon operator (Thanks to Matt J)
|
||
| 1.0.0.0 |
