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

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

[Octave-bug-tracker] [bug #53924] ismember error with mixed numeric and


From: Guillaume
Subject: [Octave-bug-tracker] [bug #53924] ismember error with mixed numeric and char arrays inputs
Date: Fri, 18 May 2018 07:48:42 -0400 (EDT)
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0

Follow-up Comment #1, bug #53924 (project octave):

It seems that when one input is numeric and the other is a char array, Matlab
converts the latter into numeric so I suggest the following fix:


--- a/scripts/set/ismember.m    Sun Sep 04 16:09:43 2016 +0100
+++ b/scripts/set/ismember.m    Fri May 18 12:45:08 2018 +0100
@@ -108,6 +108,13 @@
     a = {a};
   endif
 
+  ## Another Matlab-compatible behavior. See bug #53924.
+  if (isnumeric (a) && ischar (s))
+    s = double (s);
+  elseif (ischar (a) && isnumeric (s))
+    a = double (a);
+  endif
+  
   [a, s] = validsetargs ("ismember", a, s, varargin{:});
 
   by_rows = nargin == 3;
@@ -165,12 +172,15 @@
 %!assert (ismember ("abc", {"abc", "def"}), true)
 %!assert (isempty (ismember ([], [1, 2])), true)
 %!assert (isempty (ismember ({}, {'a', 'b'})), true)
+%!assert (isempty (ismember ([], 'a')), true)
 %!assert (ismember ("", {"abc", "def"}), false)
+%!assert (ismember (1, 'abc'), false)
+%!assert (ismember ('abc', 1), [false false false])
+%!assert (ismember ('abc', 99), [false false true])
 %!fail ("ismember ([], {1, 2})")
 %!fail ("ismember ({[]}, {1, 2})")
 %!fail ("ismember ({}, {1, 2})")
 %!fail ("ismember ({1}, {'1', '2'})")
-%!fail ("ismember (1, 'abc')")
 %!fail ("ismember ({'1'}, {'1' '2'},'rows')")
 %!fail ("ismember ([1 2 3], [5 4 3 1], 'rows')")
 %!assert (ismember ({"foo", "bar"}, {"foobar"}), [false false])


    _______________________________________________________

Reply to this item at:

  <http://savannah.gnu.org/bugs/?53924>

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




reply via email to

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