#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
.