2010-01-10 3 views
2

Я использую системную команду в MATLAB следующим образом (с текущим каталогом является «сценариями»):Проблемы с системной командой в MATLAB

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

Однако, вызывая системную команду, кажется, не работают. Он возвращает status = 0 и result = ''.

Любые предложения?

ответ

0

Вы можете использовать cd, dir, ls и т. Д. Непосредственно в Matlab без функций системы вызовов.

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

Любая команда, выполняемая «системой», является внешней по отношению к MATLAB. Создается командная оболочка, выполняется ваш запрос и затем возвращается результат. Результат 0 указывает на успешное завершение: командная оболочка изменила свой текущий каталог в соответствии с запросом и затем вернулась. (Командные оболочки используют ненулевое значение, чтобы указать на ошибку, потому что обычно существует много других способов, с помощью которых программа может терпеть неудачу, чем успешная.) К сожалению, это влияет только на текущий каталог командной оболочки - см. Ответ gnovice о том, как реально изменить каталог.

0

Вы также можете использовать команды операционной системы, предшествующие им, с помощью восклицательного знака.

Например:

  • !dir покажет вам текущее содержимое каталога в ОС Windows
  • !pwd покажет текущий каталог в Linux/Mac

Но вызов cd не меняет Текущий каталог!