Как установить octave под windows
На русском языке есть краткий учебный курс по третьей версии:
Алексеев Е.Р., Чеснокова О.В. Введение в 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'>)).
'2.71'>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);
Пример 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 для обработки ошибок.
Читайте также: