diff --git a/R/ind2subv.R b/R/ind2subv.R new file mode 100644 index 0000000..6fef574 --- /dev/null +++ b/R/ind2subv.R @@ -0,0 +1,38 @@ +ind2subv <- function(siz, ndx) stop("Needs translation") +# function sub = ind2subv(siz, ndx) +# % IND2SUBV Like the built-in ind2sub, but returns the answer as a row vector. +# % sub = ind2subv(siz, ndx) +# % +# % siz and ndx can be row or column vectors. +# % sub will be of size length(ndx) * length(siz). +# % +# % Example +# % ind2subv([2 2 2], 1:8) returns +# % [1 1 1 +# % 2 1 1 +# % ... +# % 2 2 2] +# % That is, the leftmost digit toggle fastest. +# % +# % See also SUBV2IND + +# n = length(siz); + +# if n==0 +# sub = ndx; +# return; +# end + +# if all(siz==2) +# sub = dec2bitv(ndx-1, n); +# sub = sub(:,n:-1:1)+1; +# return; +# end + +# cp = [1 cumprod(siz(:)')]; +# ndx = ndx(:) - 1; +# sub = zeros(length(ndx), n); +# for i = n:-1:1 % i'th digit +# sub(:,i) = floor(ndx/cp(i))+1; +# ndx = rem(ndx,cp(i)); +# end