开发者

Problem with the system command in MATLAB

I am using the system command in MATLAB as follows (with the current directory being 'scripts'):

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

However, invoking the system command d开发者_JS百科oes not seem to work. It returns status = 0 and result = ''.

Any suggestions?


If you want to change directories, you should use the CD command. The argument can be either a full path or relative path:

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"

If you want information about a directory, you should use the DIR command. DIR will return an m-by-1 structure of information for a directory, where m is the number of files and folders in the directory. Again, the argument can be either a full path or relative path:

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

NOTE: When working on different platforms (i.e. Windows or UNIX), you will have to pay attention to whether you use the file separator \ or /. You can get the file separator for your platform using the function FILESEP. You can also build your file paths using the function FULLFILE.


Any command executed by "system" is external to MATLAB. A command shell is generated, executes your request, and then returns the result. The 0 result indicates successful completion: the command shell changed its current directory as requested and then returned. (Command shells use non-zero to indicate an error, because there are usually many more ways that a program can fail than succeed.) Unfortunately that only affects the command shell's current directory - see gnovice's answer for how to actually change the directory.


you can use cd, dir, ls, etc directly in matlab without call system functions.


You can also use the underlying operating system commands by preceding them by an exclamation sign.

For instance:

  • !dir will show you the current directory contents in Windows
  • !pwd will show you the current directory in Linux/Mac

But calling cd does not change the current directory!

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜