2011-03-03 120 views
4

在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); 

通知你,我用八度3.2.4編譯一些倍頻僞造包窗口。

回答

1

該語法只是在其中一個最新版本中引入的。所以沒有預期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無論如何都是用作存儲桶的東西。

4

該功能介紹來自Octave 3.4。所以代碼應該能夠與當前的Octave版本一起工作。