我在MATLAB中使用系统命令如下(当前目录为'脚本'):
[status, result] = system('cd ..\\TxtInOut')
但是,调用系统命令似乎不起作用。它会返回status = 0
和result = ''
。
有什么建议吗?
答案 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
不会更改当前目录!