忽略返回值语法?

hel*_*922 4 matlab octave

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

我有两个问题:

  1. 为什么八度不支持此功能?(即错误,将来的增强,设计决策等)

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


% 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);
Run Code Online (Sandbox Code Playgroud)

Fyi,我正在使用带有某些Octave Forge软件包的Windows编译的Octave 3.2.4。

Two*_*nky 5

八度3.4中引入了此功能。因此,该代码应与当前的Octave版本一起使用。


小智 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);
Run Code Online (Sandbox Code Playgroud)

我喜欢后者,因为 ans 无论如何都是 matlab 使用的一个位桶。