在Matlab中,可使用tilda符号忽略返回多个参数的函数中的某个参数。但是,当我在Octave中尝试相同的代码时,出现语法错误。
我有两个问题:
为什么八度不支持此功能?(即错误,将来的增强,设计决策等)
如果有的话,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。
小智 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 使用的一个位桶。