On 24 September 2011 23:33, JuanPi <ajua...@gmail.com> wrote: > Hi > > >From a discussion in the IRC channel concerning this post > http://stackoverflow.com/questions/242711/algorithm-for-index-numbers-of-triangular-matrix-coefficients/3148414#3148414 > > JordiGH improved the algorithm and include it in sprandsym, though he > mentioned that there may be problem with rounding real numbers. > Therefore user deeego proposed the use of lookup. JorgdiGH mentioned > that the two version had similar profiling times and that deego's > suggestion was more robuts cause it doen't suffer form rounding > problems. I wrote the function and I post it here > > function [r c] = ind2sub_triu (N, idx) > endofrow = (1:N) .* (N - (0:(N - 1)) / 2); > r = lookup(endofrow, idx-1)+1; > > c = N - endofrow(r) + idx; > end > > %!test > %! A = [1 2 3 4; 0 5 6 7; 0 0 8 9; 0 0 0 10]; > %! [r c] = ind2sub_triu (rows(A),1:10); > %! A_shouldbe = accumarray([r; c]',1:10); > %! assert (A,A_shouldbe) > > %! assert(A,) > > Why to add this function? Among other things, the function offers an > alternative to the duplicate_matrix function when passing from > vech(A.') to A. It is also useful when a matrix of differences of many > points is stored and queried. > That is > px = rand(3,1); > py = rand(3,1); > Rx = vech(bsxfun(@minus,px,px')); > Ry = vech(bsxfun(@minus,py,py')); > D = sqrt(Rx .^2 + Ry.^2); > > Which points are at least at distance d=0.2? > d=0.2; > idx = find(D>=d)'; > [p1 p2] = sub2ind_triu(size(p,1),idx) > > Then p1 and p2 contain the label of the points that follows the criteria. > > -- > JuanPi Carbajal
Hi where do you propose to have this functions? In the general package? Carnë ------------------------------------------------------------------------------ All the data continuously generated in your IT infrastructure contains a definitive record of customers, application performance, security threats, fraudulent activity and more. Splunk takes this data and makes sense of it. Business sense. IT sense. Common sense. http://p.sf.net/sfu/splunk-d2dcopy1 _______________________________________________ Octave-dev mailing list Octave-dev@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/octave-dev