Такие проблемы обычно вызваны изменением или очисткой переменных среды MATLAB. У меня очень похожий опыт в Linux и Mac OS X, где это приводит к хаосу при использовании system
или unix
.
В Unix-подобных системах MATLAB запускается из сценария оболочки, где все это происходит. Таким образом, вы можете либо включать отсутствующие переменные, либо в .matlab7rc.sh
в свой домашний каталог (последний сохраняется при обновлении MATLAB, и это намного проще в использовании). Здесь я не буду вдаваться в подробности Unix. Альтернативный способ заключается в том, чтобы явно установить эти переменные при выдаче команды system
(например, system('export variable=value ; ...')
). Это довольно много работы, но вы можете с легкостью использовать этот код MATLAB на разных компьютерах.
В Windows я не совсем уверен в точном расположении соответствующих файлов (и запускается ли MATLAB совсем так же, как в Unix). Но если они существуют, вы можете найти его в документации MATLAB. Во всяком случае, альтернативное исправление должно работать и здесь.
Сначала вам нужно диагностировать, какие системные переменные вам нужны (вероятно, PATH
или что-то, что имеет имя, связанное с Адамсом). Чтобы сделать это в Windows, запустите set
из командной строки Windows (cmd.exe
) и изнутри MATLAB. Независимо от того, какая разница в выходе, это возможный подозреваемый в вашей проблеме. Чтобы проверить только одну переменную, вы можете использовать команду echo %variablename%
.
Я предполагаю, что вы обнаружили, что переменная окружения suspect
отсутствует и должна быть установлена в value
.
Исправление проблемы заключается в том, чтобы запустить вашу команду в MATLAB как system('set suspect=value & ...')
, где вы заменяете ...
своей исходной командой.
Что такое * Adams *? Откуда вы знаете, что лицензия доступна, когда вы пытаетесь использовать Matlab? – Schorsch
Adams - это программное обеспечение, которое я использую для моделирования. Используя командный файл, я могу начать симуляцию автоматически. Если имитация работает, значит, лицензия в порядке. В моем случае лицензия действительно доступна. В противном случае я не буду работать, выполняя командный файл в DOS. – open0121
Возможно ли, что это проблема с текущим каталогом, не относящимся к Adams? Попробуйте добавить 'cd [whereverAdamsIs]' в начало пакетного файла. – Pokechu22