empty string in switch statement
Sergei Steshenko
sergstesh at yahoo.com
Mon Nov 24 21:32:28 CST 2008
--- On Mon, 11/24/08, Peter L. Søndergaard <peter at sonderport.dk> wrote:
> From: Peter L. Søndergaard <peter at sonderport.dk>
> Subject: empty string in switch statement
> To: bug-octave at octave.org
> Date: Monday, November 24, 2008, 5:55 AM
> The following script executes differently under Matlab and
> Octave
>
>
> f='';
>
> switch(f)
> case ''
> disp('Equals.');
> end;
>
>
> In Matlab, the case statement matches and the word is
> printed. In
> Octave, there is no match.
>
> I get the completely same behaviour if I use "case
> []" instead.
>
> I am using Octave 3.0.1 from the Fedora package
> octave-3.0.1-1.fc9.x86_64
>
> Matlab version 7.4.0.287 (R2007a)
>
> Cheers,
>
> Peter.
>
>
>
I have slightly modified your code:
"
15> system("cat -n /home/sergei/acoustics_work/junk.m");
1 f='';
2
3 switch(f)
4 case ''
5 disp("Equals ''");
6 end
7
8
9 switch(f)
10 case []
11 disp("Equals []");
12 end
13
14 disp("test case 1 BEGIN");
15 disp('' == '');
16 disp("test case 1 END");
17
18
19 disp("test case 2 BEGIN");
20 disp('foo' == 'foo');
21 disp("test case 2 END");
octave:16> source("/home/sergei/acoustics_work/junk.m");
test case 1 BEGIN
[](0x0)
test case 1 END
test case 2 BEGIN
1 1 1
test case 2 END
octave:17> ver
----------------------------------------------------------------------
GNU Octave Version 3.0.3
GNU Octave License: GNU General Public License
Operating System: Linux 2.6.22.19-0.1-default #1 SMP 2008-10-14 22:17:43 +0200 i686
----------------------------------------------------------------------
octave:18>
"
- from the last two test cases it looks like comparison of zero length
strings is broken.
Regards,
Sergei.
More information about the Bug-octave
mailing list