首页 > 代码库 > octave-basic
octave-basic
在coursera上斯坦福的machine learning,lecturer极力推荐开源的编程环境Octave入手,所以我也下载了来试一试吧==
参考链接:http://www.linuxdiyf.com/linux/22034.html
安装(Ubuntu16.04):我看了下官网,Ubuntu上已经更新到4.0.3了,不过还是选了stable的,这里应该是4.0.2
$ sudo apt-add-repository ppa:octave/stable
$ sudo apt-get update
$ sudo apt-get install octave
运行octave:有图形界面 $ sudo octave
或者使用命令行来运行:$ sudo octave-cli
Octave和Matlab的主要区别:
1、费用方面
Octave是完全免费的(并且是开源的),而Matlab是商业软件
2、占用空间
Octave比较小,安装程序只有几十兆;Matlab庞大,是因为有大量的面向各种应用领域的工具箱,Octave无法相比的。
3、语法方面
Octave最初便是模彷Matlab而设计,语法基本上与Matlab一致,严谨编写的代码应同时可在Matlab及Octave运行,但也有很多细节上差别。
所以真的要写可以在matlab上运行的octave的话,需要考虑兼容性。
4、绘图方面
Octave的画图后台是强大的Gnuplot,有人认为绝对不会弱于Matlab,而且输出格式要远多于Matlab,公式显示也要强大很多。但也有人说Octave绘图速度比Matlab慢。
5、用户界面
Octave的GUI才刚开始有,可能弱一些。
Octave操作
% one row x1 = [1, 3, 2] % three row x2 = [1; 3; 2] % complex matrix should use .‘ for transposition A.‘ % A and B are matrix. Element-wise. % .* ./ .^ A ./ B a = 5 % Cij = a^Bij C = a .^ B % Moreover, we can also calculate row-wise multiply or division: a = [1 2 3; 4 5 6; 7 8 9] b = [10; 11; 12] c = b.*a d = a./b
index:
和Matlab一样,下标从1开始。
x = [1.2, 5, 7.6, 3, 8] x(2) % use index list x([1, 3, 4]) A = [1, 2, 3; 4, 5, 6; 7, 8, 9] % 1st and 3rd rows and 2nd and 3rd cols A([1, 3], [2, 3]) % : means all elements A(2, :)
range:
% start:step:stop % default step is 1 1:3:10 % end means last element in the row or col. For vector and matrix % last col of A showing A(:, end)
special matrix:
x = [1,2,3;4,5,6;7,8,9] % lower triangular part of x. Diagonal included. tril(x) % upper triangular part of x. Diagonal included. triu(x) % indentity matrix. eye(m, n) for m*n. filled by ‘0‘ eye(n) ones(m, n) zeros(m, n) % elements are in [0,1). uniformly drawn rand(m, n) % normaly distributed. negative is ok randn(m, n) % return a random permutation which is a row vector randperm(n) v = [1,2,3] % diagonal are from v. other places are ‘0‘ diag(v) % return a vector contain elements from diagnoal of x diag(x) % n elements in [a, b]. avg. n, is optional with default value 100. linspace(a, b, n) % n elements in [10^a, 10^b]. n is optional with default value of 50 logspace(a, b, n)
% left-right exchange fliplr(x) % up and down exchange flipud(x) % returns a copy of matrix A that has been rotated by (90n)° counterclockwise rot90(x, n) % sort and in increasing order sort(x) % rearrange x to m*n matrix. Selection start from x11 to xm1, then x21 to xm2.... reshape(x, 2, 6)
octave-basic