忽略返回值语法?

时间:2011-03-03 05:59:53

标签: matlab octave

在Matlab中,tilda符号可用于忽略返回多个参数的函数中的某个参数。但是,当我在Octave中尝试相同的代码时,我收到语法错误。

我有两个问题:

  1. 为什么Octave不支持这个? (即错误,未来增强,设计决定等)

  2. Octave中的替代语法是什么(如果有的话)(不仅仅是将“虚拟变量”放入现场然后清除该变量)?另外,这种替代语法Matlab是否兼容?

  3. 
    % this is valid Matlab code, but will result in a syntax error in Octave
    [colA, colB, ~, colC] = textread('data.txt', '%d %d %s %d', 1);
    

    Fyi,我正在使用Octave 3.2.4编译为带有一些Octave Forge软件包的窗口。

2 个答案:

答案 0 :(得分:5)

此功能是在Octave 3.4中引入的。所以代码应该适用于Octave的当前版本。

答案 1 :(得分:2)

此语法刚刚在其中一个最新版本中引入。所以没有期望Octave会匹配这个功能。

您的替代方案有效地以某种形式引入虚拟变量。以下是〜成为选项之前使用的常见选择。

[colA, colB, colC, colC] = textread('data.txt', '%d %d %s %d', 1);
[colA, colB, ans, colC] = textread('data.txt', '%d %d %s %d', 1);

我喜欢后者,因为ans是matlab使用的任何东西。