Есть ли способ получить версию MATLAB без запуска движка?

#linux #matlab

#linux #matlab

Вопрос:

Есть ли способ получить версию MATLAB без запуска движка? При запуске (в режиме без графического интерфейса) он выводит версию в stout — но я использую ее удаленно с Java, и поэтому вывод недоступен.

В качестве альтернативы, есть ли способ получить версию из MATLAB?

Под «версией» я подразумеваю предпочтительно номер с двойной строкой, например «7.13», в отличие от номера выпуска, например «R2011b».

Спасибо! Джеймс

Комментарии:

1. Почему вы не можете просто использовать version команду MATLAB из своего Java-кода?

2. Как вы запускаете matlab удаленно? Разве вы не можете перенаправить stdout и stderr и использовать их?

3. @JonasHeidelberg Потому что я не хочу запускать движок, как сказано в моем вопросе.

4. @jgubby: Я, очевидно, отвечал на ваш второй вопрос, а не на первый…

5. @JonasHeidelberg О да … упс.

Ответ №1:

Как сказал Джонас, version команда — ваш друг. Используйте

 v = version
  

чтобы получить числовую версию (за которой следует версия «R-release») в строке, выполните следующие действия:

 v =
7.12.0.39132 (R2011a)
  

Затем вы должны иметь возможность проанализировать строку, чтобы получить только начальную числовую часть.

Смотрите документацию MathWorks для ВЕРСИИ на

http://www.mathworks.com/help/techdoc/ref/version.html

для получения дополнительной информации.

Дополнительный совет; если вы ищете номер версии, чтобы убедиться, что установленный MATLAB не старше (определенного номера выпуска), ознакомьтесь с документацией для VERLESTHAN по адресуhttp://www.mathworks.com/help/techdoc/ref/verlessthan.html Это может помочь вам решить вашу проблему, не разбирая строку самостоятельно.

Комментарии:

1. Достаточно близко, спасибо. Жаль, что создатели этого программного обеспечения стоимостью $ $ $ не додумались сделать номер версии доступным с помощью флага CL, как в любом другом программном обеспечении в мире….

2. @jgubby Как это решает вашу проблему с получением версии без запуска движка? Для выполнения она должна быть уже запущена version . При запуске matlab в командной строке вы также можете получить номер версии из заголовка: matlab -r quit | grep Version

3. @stardt Я просто подумал, что это ближе всего к правильному ответу, поскольку, похоже, другого способа не было. Это хитрый трюк — за исключением того, что R2011 имеет другой формат и, похоже, не печатает версию с этой строкой в качестве префикса. Вероятно, слишком хрупкий, поскольку я забуду, что я сделал этот взлом со 100% уверенностью…

4. matlab -r quit -nojvm | grep "R201[0-9][ab]" Похоже, это работает в Linux с 2014a и Mac OS X с 2017a

Ответ №2:

Я не знаю, работает ли следующее во всех выпусках, но попробуйте запустить:

 matlab -help
  

Это отображает использование командной строки, и, что интересно, в конце она печатает версию (MATLAB не запускается в процессе):

 matlab [-? ^| -h ^| -help]
       [-c licensefile]
       [-nosplash]
       [-nodesktop ^| -nojvm]

<...TRUNCATED...>

    -shieldload <list>   - Win32 only: (experimental) loads dlls identified in
                                   comma separated list


    Version: 7.13.0,564
  

Вы могли бы легко получить номер версии из этого вывода ( grep ваш друг)

Комментарии:

1. Matlab 2014 и 2015 в Linux, похоже, не печатают ее, но если версия выпуска является частью пути Matlab, она окажется в matlab -n .