www.gusucode.com > rctutil 工具箱 matlab源码程序 > rctutil/private/ksmidx.m

    % Copyright 2003-2004 The MathWorks, Inc.

function [idx1,idx2] = ksmidx(nr,r,c,dim,nk)
%   gets MATLAB indices of a kronekared-symmetric matrix, of dimension DIM,
%   kronekared by NK,
%   starting at row R, column C, of a matrix with NR rows.

    len = dim*(dim+1)/2;
    idx1 = zeros(len,1);
    idx2 = zeros(len,1);
    rcinc = nk*(0:dim-1);
    loc = 1;
    for i=1:dim
        rows = r + rcinc(1:i);
        col = c + rcinc(i);
        idx1(loc:loc+i-1,1) = rows' + nr*(col-1);
        row = r + rcinc(i);
        cols = c + rcinc(1:i);
        idx2(loc:loc+i-1,1) = row + nr*(cols'-1);
        % UPDATE LOC 
        loc = loc + length(rows);
    end