2011-10-29 31 views
6

我用addpath(pwd)讓我的.m文件在我的項目目錄中工作。當我關閉窗口並開始一個新窗口時,我剛剛添加的路徑消失了。但文件仍然運行。如何在Octave(在Windows上)獲得路徑?

是否在我的路上?我如何查看已添加到路徑中的目錄?

另外,.是我從path看到的第一個條目。這是否意味着我不需要添加任何目錄,因爲它總是會先搜索當前目錄?

謝謝。

回答

9

基本上,是的。

您可以使用addpath()將搜索路徑添加到搜索路徑,但正如您所知,它只存在於當前會話中,並在重新啓動Octave時重置。如果您希望路徑在會話之間生存下來,請將其添加到octaverc,該腳本文件在新會話開始時運行。例如路徑octaverc文件是:

C:\Octave\3.2.4_gcc-4.4.0\share\octave\site\m\startup 

由於.是在默認情況下你的路徑,八音會搜索當前目錄的,它需要的任何功能文件。如果你只是呆在同一個目錄下,使用addpath(pwd)就沒什麼用處了。但是,在某些情況下,如果您有一個包含您的函數的目錄,而另一個包含您正在處理的數據,那麼它會很有用:您可以從函數目錄開始,執行addpath(pwd),然後將cd添加到數據目錄,同時仍然可以使用您的功能。

2

您可以創建批處理文件,該文件將以您的目錄路徑啓動Octave。請參閱下面的例子:

octave-3.6.4.exe -p "C:\MyOctaveDiretory" 

-p means addpath() 
0
addpath(pwd); savepath(); 

完成。

+0

我希望你注意到你只回答了什麼是他要求的一部分...你能與其餘的幫助呢? – yakobom

0

我覺得Octave有一個bug(我在Windows上使用4.0.3版本)。當我在當前路徑中創建一個新文件時,不能由Octave調用(「error:'foo'undefined near line 1 column 1」)。如果我重新啓動八度,它的作品。這個addpath(pwd)技巧幫助我很多(在我沒有成功嘗試rehash()和cd在其他地方並且再次返回之前)。

如果你有同樣的問題,對於症狀的原因可能是:

  1. 開始八度。
  2. 創建newfile.m。
  3. 調用newfile - 失敗,因爲Octave沒有註冊它的存在。
  4. addpath(pwd) - 導致Octave進行註冊。
  5. 關閉Octave
  6. 啓動Octave - 現在pwd從路徑中消失,但newfile.m在啓動時註冊。
  7. 通話的newfile - 工程
相關問題