4

我在 octave 3.6.2 中收到以下行的语法错误:

if(exist('OCTAVE_VERSION')~=0) more off; end

尽管:

if(exist('OCTAVE_VERSION')~=0)
 more off;
end

似乎还可以。然而:

if(exist('OCTAVE_VERSION')~=0) fflush(stdout); end

效果很好。

这是一个与非括号内的参数相关的错误(?)吗?

谢谢

4

1 回答 1

3

我在 Octave 3.4.3 中也得到了相同的结果:

似乎是 octave 中的无害编译器错误,当您在 1 行 if 语句中使用命令 'more off' 或 'more on' 时,会引发语法错误。

如果在条件之后添加换行符,或者如果在 eval(...) 中包含“more off”,则它可以正常工作。

%works correctly, turns off paging screen output
if(1)
  more off;
end

%works correctly, prints 3.4.3
if(1) disp(OCTAVE_VERSION);  end

%works correctly, prints '1'
if(1) disp([1]); more off;  end

%syntax error when parsing "off" in 'more off'.
if(1) more off; endif

%syntax error on parsing 'off' in 'more off;'
if 1 more off;  endif

%works correctly, turns off paging screen output
if (1) eval("more off"); endif

抛出的语法错误是:“错误:读取脚本文件时解析错误”。

于 2012-07-09T17:02:32.820 回答