sub2allind

convert subscripts to ALL corresponding indices
654 téléchargements
Mise à jour 7 fév. 2012

Afficher la licence

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 );

Citation pour cette source

Michael Völker (2024). sub2allind (https://www.mathworks.com/matlabcentral/fileexchange/30096-sub2allind), MATLAB Central File Exchange. Extrait(e) le .

Compatibilité avec les versions de MATLAB
Créé avec R2011a
Compatible avec toutes les versions
Plateformes compatibles
Windows macOS Linux
Catégories
En savoir plus sur Matrix Indexing dans Help Center et MATLAB Answers
Remerciements

A inspiré : CATPAD, N-dimensional sparse arrays

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
Version Publié le Notes de version
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
* little more docu and error checking

1.1.0.0

* Implemented colon operator (Thanks to Matt J)
* possible errors catched; more comments

1.0.0.0