Skip to content
Snippets Groups Projects
Select Git revision
  • ij-rand-ellipses
  • master default
  • ij-opencv
  • ij-replicates
  • gmm-thread
5 results

IndToCoord.m

Blame
  • IndToCoord.m 2.19 KiB
    
    % coords = IndToCoord(arraySize, arrayIdx)
    %   This function will take a list of indices and convert them into a
    %   coordinate with the same dimentionality of the array size in.
    
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    %
    % Copyright (c) 2016, Drexel University
    % All rights reserved.
    % 
    % Redistribution and use in source and binary forms, with or without
    % modification, are permitted provided that the following conditions are met:
    % 
    % * Redistributions of source code must retain the above copyright notice, this
    %   list of conditions and the following disclaimer.
    % 
    % * Redistributions in binary form must reproduce the above copyright notice,
    %   this list of conditions and the following disclaimer in the documentation
    %   and/or other materials provided with the distribution.
    % 
    % * Neither the name of PixelRep nor the names of its
    %   contributors may be used to endorse or promote products derived from
    %   this software without specific prior written permission.
    % 
    % THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    % AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
    % IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
    % DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    % FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
    % DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
    % SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
    % CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
    % OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
    % OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    %
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    
    function coords = IndToCoord(arraySize, arrayIdx)
        coords = zeros(length(arrayIdx),length(arraySize));
    
        linSize = [1 cumprod(arraySize)];
        partialIdx = arrayIdx;
        for i = length(arraySize):-1:1
            r = rem(partialIdx-1, linSize(i)) + 1;
            q = floor((partialIdx-r) / linSize(i)) + 1;
    
            coords(:,i) = q;
            partialIdx = r;
        end
    end