MATLAB中的系统命令问题

时间:2010-01-10 07:49:15

标签: matlab system

我在MATLAB中使用系统命令如下(当前目录为'脚本'):

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

但是,调用系统命令似乎不起作用。它会返回status = 0result = ''

有什么建议吗?

4 个答案:

答案 0 :(得分: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构建文件路径。

答案 1 :(得分:3)

“system”执行的任何命令都在MATLAB外部。生成命令shell,执行您的请求,然后返回结果。 0结果表示成功完成:命令shell按请求更改了当前目录,然后返回。 (命令shell使用非零来表示错误,因为通常有很多方法可以使程序失败而不是成功。)不幸的是,这只会影响命令shell的当前目录 - 请参阅gnovice关于如何实际更改目录的答案。 / p>

答案 2 :(得分:0)

你可以直接在matlab中使用cd,dir,ls等,而无需调用系统函数。

答案 3 :(得分:0)

您还可以使用基础操作系统命令,在它们前面加上感叹号。

例如:

  • !dir将显示Windows中的当前目录内容
  • !pwd将显示Linux / Mac中的当前目录

但是调用cd不会更改当前目录!