2010-01-10 68 views
2

系統命令我使用如下MATLAB中的系統命令(與當前目錄是「腳本」):問題與MATLAB

[status, result] = system('cd ..\\TxtInOut') 

然而,調用系統命令似乎沒有工作。它返回status = 0result = ''

有什麼建議嗎?

回答

0

你可以在沒有調用系統函數的情況下直接在matlab中使用cd,dir,ls等。

7

如果要更改目錄,應該使用CD命令。該參數可以是一個完整路徑或相對路徑:

cd('c:\matlab\toolbox'); %# Full path to a directory 
cd('scripts');   %# Move to a subdirectory "scripts" 
cd('..\TxtInOut');  %# Move up one level, then to directory "TxtInOut" 

如果您想了解一個目錄信息,你應該使用DIR命令。 DIR將返回m-by-1信息結構的目錄,其中m是目錄中的文件和文件夾的數量。同樣,參數可以是一個完整路徑或相對路徑:

data = dir('c:\matlab\toolbox'); %# Data for a full path to a directory 
data = dir('scripts');   %# Data for a subdirectory "scripts" 

注:在不同的平臺(如Windows或UNIX)工作時,你必須要注意你是否使用文件分隔符\/。您可以使用功能FILESEP獲取平臺的文件分隔符。您也可以使用功能FULLFILE建立文件路徑。

3

任何由「system」執行的命令都是MATLAB的外部命令。生成命令外殼程序,執行您的請求,然後返回結果。 0結果表示成功完成:命令shell根據請求更改其當前目錄,然後返回。 (命令外殼使用非零來表示錯誤,因爲通常程序可能失敗的方式多於成功。)不幸的是,它隻影響命令外殼的當前目錄 - 請參閱gnovice關於如何實際更改目錄的答案。

0

您還可以使用底層操作系統命令,方法是在感嘆號前加上前面的操作系統命令。

例如:

  • !dir會顯示在Windows
  • 當前目錄內容
  • !pwd會告訴你當前目錄中的Linux/Mac的

但調用cd不會改變當前目錄!