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

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

[Octave-bug-tracker] [bug #51412] strcmp with multidimensional char arra


From: Guillaume
Subject: [Octave-bug-tracker] [bug #51412] strcmp with multidimensional char arrays
Date: Fri, 7 Jul 2017 05:48:29 -0400 (EDT)
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:50.0) Gecko/20100101 Firefox/50.0

URL:
  <http://savannah.gnu.org/bugs/?51412>

                 Summary: strcmp with multidimensional char arrays
                 Project: GNU Octave
            Submitted by: gyom
            Submitted on: Fri 07 Jul 2017 09:48:27 AM UTC
                Category: Octave Function
                Severity: 3 - Normal
                Priority: 5 - Normal
              Item Group: Matlab Compatibility
                  Status: None
             Assigned to: None
         Originator Name: Guillaume
        Originator Email: 
             Open/Closed: Open
         Discussion Lock: Any
                 Release: dev
        Operating System: Any

    _______________________________________________________

Details:

strcmp seems to differ from Matlab when the input is not a row vector, see
with the following code:


% 1D array
a = char(ceil(rand(1,5)*5+'a'));
strcmp(a,a)
strcmp(a,{a})
strcmp({a},{a})
strcmp(a,{a,a})
strcmp({a},{a,a})

% 2D array
a = char(ceil(rand(2,5)*5+'a'));
strcmp(a,a)
strcmp(a,{a})
strcmp({a},{a})
strcmp(a,{a,a})
strcmp({a},{a,a})

% 3D array
a = char(ceil(rand(2,5,2)*5+'a'));
strcmp(a,a)
strcmp(a,{a})
strcmp({a},{a})
strcmp(a,{a,a})
strcmp({a},{a,a})


In Octave:


octave:1> % 1D array
octave:1> a = char(ceil(rand(1,5)*5+'a'));
octave:2> strcmp(a,a)
ans = 1
octave:3> strcmp(a,{a})
ans = 1
octave:4> strcmp({a},{a})
ans = 1
octave:5> strcmp(a,{a,a})
ans =

  1  1

octave:6> strcmp({a},{a,a})
ans =

  1  1

octave:7> 
octave:7> % 2D array
octave:7> a = char(ceil(rand(2,5)*5+'a'));
octave:8> strcmp(a,a)
ans = 1
octave:9> strcmp(a,{a})
ans =

  1
  0

octave:10> strcmp({a},{a})
ans = 1
octave:11> strcmp(a,{a,a})
ans =

  1  0

octave:12> strcmp({a},{a,a})
ans =

  1  1

octave:13> 
octave:13> % 3D array
octave:13> a = char(ceil(rand(2,5,2)*5+'a'));
octave:14> strcmp(a,a)
ans = 1
octave:15> strcmp(a,{a})
error: invalid conversion of charNDArray to string_vector
octave:15> strcmp({a},{a})
error: invalid conversion of charNDArray to string
octave:15> strcmp(a,{a,a})
error: invalid conversion of charNDArray to string_vector
octave:15> strcmp({a},{a,a})
error: invalid conversion of charNDArray to string


while in Matlab:


>> % 1D array
>> a = char(ceil(rand(1,5)*5+'a'));
>> strcmp(a,a)
ans =
  logical
   1
>> strcmp(a,{a})
ans =
  logical
   1
>> strcmp({a},{a})
ans =
  logical
   1
>> strcmp(a,{a,a})
ans =
  1x2 logical array
   1   1
>> strcmp({a},{a,a})
ans =
  1x2 logical array
   1   1
>> 
>> % 2D array
>> a = char(ceil(rand(2,5)*5+'a'));
>> strcmp(a,a)
ans =
  logical
   1
>> strcmp(a,{a})
ans =
  2x1 logical array
   0
   0
>> strcmp({a},{a})
ans =
  logical
   1
>> strcmp(a,{a,a})
ans =
  1x2 logical array
   0   0
>> strcmp({a},{a,a})
ans =
  1x2 logical array
   1   1
>> 
>> % 3D array
>> a = char(ceil(rand(2,5,2)*5+'a'));
>> strcmp(a,a)
ans =
  logical
   1
>> strcmp(a,{a})
ans =
  2x1 logical array
   0
   0
>> strcmp({a},{a})
ans =
  logical
   1
>> strcmp(a,{a,a})
ans =
  1x2 logical array
   0   0
>> strcmp({a},{a,a})
ans =
  1x2 logical array
   1   1





    _______________________________________________________

Reply to this item at:

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

_______________________________________________
  Message sent via/by Savannah
  http://savannah.gnu.org/




reply via email to

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