简介
Octave是一个科学计算及数值分析的工具,和Matlab类似,不过Octave是开源并且免费的,占用空间小。而Matlab包含大量面向各种应用领域的工具箱,因此需要付费,并且占用空间大。
对于一般科学计算、数据分析、绘图而言,Octave的功能已经足够用了,并且Octave最初是模彷Matlab设计,语法基本上与Matlab一致,严谨编写的代码应同时可在Matlab及Octave上运行,但是两者具体而言还是有很多细节上差别。
对于机器学习而言,至少 Andrew Ng 说他的课程 Octave 是够用了,并且课程算法实现采用 Octave 。在编程语言上,Andrew Ng 称,在硅谷,机器学习工程师一般都先采用 Octave 这样的软件建模,跑数据,之后觉得模型不错再用 C++、Java之类的编程语言实现。因为机器学习算法用 Octave 实现起来比 Python、R、C++、Java之类的计算机编程语言要快捷很多,俗话说磨刀不误砍柴工。因此还是有必要学习一下Octave的基本用法,平时跑个数据什么的。
基础操作
以下均在CLI交换下输入
% 代表注释
% 改变 Octave 提示符
PS1('>> ');
% 改变工作目录
cd 'c:/path/to/desired/directory name'
% 其中对于 / 不需要额外的转义字符
%% 基础操作和变量赋值
5+6
3-2
5*8
1/2
2^6 % 2的6次方
1 == 2 % 逻辑判断
1 ~= 2 % 不等于不是 "!="
1 && 0 % 与
1 || 0 % 或
xor(1,0) % 异或
%% 变量赋值
a = 3; % 交互式环境下 ;可以抑制变量的输出
b = 'hi';
c = 3>=1;
% 变量显示:
a = pi
disp(a)
disp(sprintf('2 decimals: %0.2f', a))
disp(sprintf('6 decimals: %0.6f', a))
format long
a
format short
a
%% 向量和矩阵
A = [1 2; 3 4; 5 6]
v = [1 2 3]
v = [1; 2; 3]
v = [1:0.1:2] % 从1到2(包含)步长为0.1 绘制坐标轴时非常有用
v = 1:6 % 从1到6,步长为1
k = A(1,:);%获取A矩阵的第1行
l = A(:,2);%获取A矩阵的第2列
m = A(:,[1,3]</