Как установить octave под windows

Обновлено: 02.07.2024

На русском языке есть краткий учебный курс по третьей версии:
Алексеев Е.Р., Чеснокова О.В. Введение в Octave для инженеров и математиков. — M.: ALT Linux, 2012.

Ниже при сравнении Octave с Matlab имеется в виду версия Octave 4.4 (под Windows) и Matlab 8 (под Windows).

Буду благодарен за уточнения для текущих версий Matlab под Windows, а также указание других отличий. Указанные в сравнении отличия — это то с чем столкнулся (систематически функции не сравнивались).

Сравнение MatLab и Octave 4.4.
I. Среда и базовые возможности

A.1. В Octave «редактор» рисунков имеет значительно меньше возможностей, чем редактор рисунков в MatLab. Перенести при помощи буфера обмена из окна рисунка в сторонний графический редактор рисунок в векторном формате нет возможности. Вставить во внешний редактор можно только Bitmap.

Такие расширенные возможности при преобразовании содержащих числа строк не поддерживают, по крайней мере, старые версии Matlab: в Matlab строка должна быть скалярной (не массив строк, т.е. не матрица символов); несколько строк с числами может содержать массив ячеек (например, str2double(<'2.71' '3.1415'>)).

B.3. В управляющих структурах и функциях появилась возможность уточнить end: endfunction, endif, endswitch, endfor, endwhile.

B.4. В Matlab переменные рабочего пространства и локального рабочего пространства функции недоступны в определении inline-функции.

>> a=2; f = inline('a*sin(x)', 'x');
>> f(0)
Error using inlineeval (line 15)
Error in inline expression ==> a*sin(x)
Undefined function or variable 'a'.

Error in inline/subsref (line 24)
INLINE_OUT_ = inlineeval(INLINE_INPUTS_, INLINE_OBJ_.inputExpr,
INLINE_OBJ_.expr);

В Octave — доступны
Пример 1 (переменные глобального рабочего пространства)
>> a= 2; f = inline('a*sin(x)', 'x')
f = f(x) = a*sin(x)
>> f(0), f(pi/2)
ans = 0
ans = 2 function res = inline_test
a = 2;
f = inline('a*sin(x)', 'x');
res = f(pi/2);
endfunction
>> inline_test
ans = 2 function res = inline_test(a)
f = inline('a*sin(x)', 'x');
res = f(pi/2);
endfunction
>> inline_test(2)
ans = 2
B.5. Octave поддерживает аргументы со значениями по умолчанию (Default Arguments). Синтаксис: Если при вызове аргумент не будет передан, то в функцию передается значение, указанное в заголовке определения. Например

function DefArgDemo(x, opt1=1, opt2=2)
disp(opt1)
disp(opt2)
endfunction


B.6. Octave поддерживает игнорируемые аргументы (ignoring arguments)
Если некоторый фактический аргумент не должен использоваться в функции, то вместо имени формального аргумента указывается символ “

”. Число передаваемых в функцию (фактических) аргументов, возвращаемое функцией nargin, учитывает игнорируемые аргументы.
Пример

Если не все возвращаемые функцией результаты нужны, то для игнорирования ненужных выходных аргументов при вызове функции они должны быть заменены на

. Функция nargout подсчитывает и игнорируемые выходные аргументы.
Пример

    * расширенный [C-подобный] синтаксис присвоений: += , -= , *= , /= , \= , ^= , .*= , ./= , .\= , .^= ;
    * [C-подобные] инкремент и декремент в префиксной и постфиксной форме;
    * [C-подобный] оператор != («не равно») в дополнение к

= ;
* возможность определения функций не только в m-файлах, но и в командном окне и сценариях.
* возможность индексации, в том числе множественной, не только переменных, но и выражений

B.8. В Matlab нет, а Octave есть цикл do-until.
Тело цикла

выполняется пока condition не примет значение true. Если в качестве condition выступает числовое выражение, то оно считается true, если все элементы не нулевые.

B.9. В Octave к механизму try-catch добавляется механизм unwind_protect. Это позволяет создавать конструкции try-catch-finally для обработки ошибок.

Читайте также: