Octave

Материал из theor
Перейти к: навигация, поиск

GNU Octave - это высокоуровневый язык программирования чаще всего используемый для численных расчётов. Octave может быть использован как свободная альтернатива Matlab, так как синтаксис языков очень похож.

Возможности

Octave может почти всё, что может MatLab.

Сравнение с Matlab

Хоть octave и писался таким образом, чтобы быть совместимым с matlab, различия всё равно остаются.

С-подобные операторы

В octave можно использовать такие операторы как

   i+=1; i*=1; i++.

В matlab такие операторы не работают.

Обращения

В octave можно обращаться к спискам сразу после их создания:

   econd_element = [1:10](2)

В matlab для этого нужно создавать промежуточную переменную.

startup.m

Matlab при старте запускает файл 'startup.m' из директории, в которой он был запущен. Octave запускает файл с расширением '.octaverc', который может быть изменён так, чтобы при старте запускался 'startup.m':

   if ( exist ('startup.m', 'file') )
     source ('startup.m')  # load startup.m like matlab
   endif

Загрузка пустых файлов

При попытке загрузить пустой файл в переменную в matlab этой переменной присваивается пустой массив. Octave выдаёт ошибку.

  Matlab 6.5   : A=[]
  Octave 3.6.2 : error: load: file `emptyfile' seems to be empty!
                 error: load: unable to extract matrix size from file `emptyfile'

fprintf and printf

В matlab нет команды 'printf', которая в octave используется для вывода текста на экран. Следующий код сработает в octave, но непригоден для matlab.

   foo = 5;
   printf('My result is: %d\n', foo)

Для печати на экран в matlab можно использовать команду `fprintf':

   foo = 5;
   fprintf('My result is: %d\n', foo)

Перенос строки

Matlab требует объявления строки с использованием '...'.

   rand (1, ...
         2)

В octave же можно также написать

   rand (1,
         2)

или

   rand (1, \
         2)

Другие отличия

Более подробно о различиях matlab и octave можно почитать в соответствующем разделе викиучебника по matlab или в FAQ на официальной wiki octave. Также обсуждение отличий языков можно найти в вопросах на stackoverflow: Differences between Octave and MATLAB? и Why/when should I prefer MATLAB over Octave?

Ссылки