zoukankan      html  css  js  c++  java
  • 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)
    

      

      

      

      

  • 相关阅读:
    Android 获取SDCard中某个目录下图片
    Android ListView中 每一项都有不同的布局
    Listview 异步加载图片之优化篇(有图有码有解释)
    Android 实现ListView异步加载图片
    android ListView异步加载图片(双缓存)
    使用 COM 风格的编程接口
    deb包+软件图标+添加到系统菜单+举例安装卸载
    罗将公布手机锤,我感到深深的内疚
    【 D3.js 入门系列 --- 9.6 】 生产的包图
    Junit指定测试运行顺序
  • 原文地址:https://www.cnblogs.com/pxy7896/p/6506103.html
Copyright © 2011-2022 走看看