File Exchange

image thumbnail

Automatically arranged multiple subscripts from linear index

version 1.0 (1.72 KB) by

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

1 Download


View License

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.
      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.

Comments and Ratings (1)

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{:})

MATLAB Release
MATLAB 7.2 (R2006a)

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

» Watch video