octave-bug-tracker
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Octave-bug-tracker] [bug #59850] uniquetol missing, so I implemented it


From: Rik
Subject: [Octave-bug-tracker] [bug #59850] uniquetol missing, so I implemented it
Date: Fri, 22 Jan 2021 12:47:18 -0500 (EST)
User-agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.66 Safari/537.36

Follow-up Comment #12, bug #59850 (project octave):

There already will be some difference between the regular algorithm and the
"ByRows" algorithm.  Also, I would note that we don't have freedom to innovate
here.  Matlab has defined how "uniquetol" should behave.  In particular, the
criteria deciding for rows is


all(abs(u-v) <= tol*max(abs(A),[],1))


The part after "tol" can be overridden by specifying the "DataScale" option. 
I wonder if judicious choices about the tolerance and DataScale options will
do what you want.

Representing a point in an N-dimensional vector space as a row vector [x1, x2,
..., xN] then the Matlab criterion above says that a vector is nearly
identical if for each separate component (x1 - y1, x2 - y2, ...) the absolute
difference is less than some value.  

That seems to work reasonably well.  Take an example in 2-D


x = [0, 1];
y = [0, -1];
norm (x) == norm (y) == 1
So, these two vectors look somewhat the same, BUT
abs (1 - (-1)) == 2 will show that there are unique components and so the
vectors themselves are unique.




    _______________________________________________________

Reply to this item at:

  <https://savannah.gnu.org/bugs/?59850>

_______________________________________________
  Message sent via Savannah
  https://savannah.gnu.org/




reply via email to

[Prev in Thread] Current Thread [Next in Thread]