% Uncondition points x = sugr_uncondition_Points(xc,M) xc = struct, conditioned SUGR-points xc.h = coordiante xc.Crr = covariance matrices of reduced coordiantes M = matrix of conditioning x = struxt: unconditioned SURG-points see PCV (6.137) Wolfgang Förstner 2/2013 wfoerstn@uni-bonn.de
0001 %% Uncondition points 0002 % 0003 % x = sugr_uncondition_Points(xc,M) 0004 % 0005 % xc = struct, conditioned SUGR-points 0006 % xc.h = coordiante 0007 % xc.Crr = covariance matrices of reduced coordiantes 0008 % M = matrix of conditioning 0009 % 0010 % x = struxt: unconditioned SURG-points 0011 % 0012 % see PCV (6.137) 0013 % 0014 % Wolfgang Förstner 2/2013 0015 % wfoerstn@uni-bonn.de 0016 0017 function x = sugr_uncondition_Points(xc, M) 0018 0019 % number and dimension 0020 [N, d] = size(xc.h); 0021 0022 Mi = inv(M); 0023 0024 % uncondition point coordiantes 0025 for n = 1:N 0026 xhcn = xc.h(n, :)'; % homogeneous condit. coord. 0027 Chhcn = null(xhcn') * xc.Crr(n,:,:) * null(xhcn')'; 0028 xn = Mi * xhcn; %#ok<*MINV> % homogene ous un condit. coord. 0029 Chhn = Mi * Chhcn * Mi'; % ... CovM 0030 if d == 2 0031 xn = sugr_Point_2D(xn, Chhn); 0032 else 0033 xn = sugr_Point_3D(xn, Chhn); 0034 end 0035 x.h(n, :) = xn.h'; % spherically normalized uncond. coord. 0036 x.Crr(n, :, :) = xn.Crr; % ... reduced CovM 0037 end 0038