Code covered by the BSD License

### Highlights from Automatically arranged multiple subscripts from linear index

Be the first to rate this file! 5 Downloads (last 30 days) File Size: 1.72 KB File ID: #19498 Version: 1.0

# Automatically arranged multiple subscripts from linear index

### Paul A.M. Bune (view profile)

08 Apr 2008 (Updated )

Functionally, the same as internal MatLab routine "ind2sub", but the result is put into an automatic

File Information
Description

sub = ind2sub1(siz, ind)

Multiple subscripts (written into one vector or matrix) from linear index "ind" for an N-dimensional array defined by its array size "siz".

Linear index "ind" can be a single positive integer or a vector of positive integers. If "ind" is a row vector, it is converted into a column vector internally.

In principle, the same as MatLab routine "ind2sub", but the result is put into an automatically sized vector (if "ind" is a single integer) or matrix (if "ind" is a vector) rather than into multiple variables.

Example:

A = ones(2, 3, 4);
Sub1 = ind2sub1(size(A), 6)

Sub1 =

2 3 1

Sub2 = ind2sub1(size(A), 4:4:24)

Sub2 =
2 2 1
2 1 2
2 3 2
2 2 3
2 1 4
2 3 4

Note: An example of its application may be found in File ID 19484.

MATLAB release MATLAB 7.2 (R2006a)
Tags for This File   Please login to tag files.
 Please login to add a comment or rating.
Comments and Ratings (1)
09 Apr 2008 Jos x@y.z

This can be quite simply accomplished by:

A = ones(2,3,4) ;
ind = 4:4:24 ;

[B{1:ndims(A)}] = ind2sub(size(A), ind(:)) ;
Sub2 = cat(2,B{:})

Comment only

Contact us