Я должен написать код, который должен работать одинаково хорошо в Октаве и на MATLAB. Проблема состоит в том, что это должно сделать некоторый материал GUI, который MATLAB и Октава обрабатывают полностью по-другому.
Существует ли способ, которым я могу обнаружить, если я выполняю MATLAB или Октаву для вызывания правильной функции?
Вы можете использовать следующий тест, чтобы отличить Octave от MATLAB:
isOctave = exist('OCTAVE_VERSION', 'builtin') ~= 0;
Я бы использовал, например, команду ver, которая дает:
в MATLAB:
MATLAB Version 7.7.0.471 (R2008b) { {1}} Операционная система: Linux 2.6.31-20-generic # 57-Ubuntu SMP Понедельник, 8 февраля, 09:05:19 UTC 2010 i686 Версия виртуальной машины Java: Java 1.6.0_04 с Sun Microsystems Inc. Java HotSpot ™ Client VM в смешанном режиме
в Octave:
GNU Octave Version 3.0.5 Лицензия GNU Octave: Стандартная общественная лицензия GNU Операционная система: Linux 2.6.31-20 -generic # 57-Ubuntu SMP Пн 8 фев 09:05:19 UTC 2010 i686
Другая возможность - использовать функцию лицензии.
В Matlab:
>> exist octave_config_info
ans =
0
В Octave:
octave:3> exist octave_config_info
ans = 5