美文网首页
octave初次使用记录

octave初次使用记录

作者: 克罗地亚催眠曲 | 来源:发表于2018-03-14 16:37 被阅读77次
    #清除所有变量
    clear
    
    
    #清除某个变量
    clear varname
    
    #以更精确的方式显示数值变量
    format long
    #以15位有效数字的方式显示,这也是octave程序本身的计算精度
    
    #精确度问题
    1-0.2-0.2-0.2-0.2-0.2
    ans = 5.5511e-017
    #因此考虑两个数是否相等时,不要忘记精度和容许误差
    
    #取消一个正在执行的命令
    Ctrl + C
    
    #在命令后添加分号,将不会显示相应的结果
    
    #在方括号中由空格或逗号隔开的一行数据被定义为行向量,由分号隔开的一行数据被定义为列向量
    
    #冒号表达式可以用来创建一些特殊的向量
    - e = 2 : 6
    e=
      2 3 4 5 6
    - e = 2 : 0.3 : 4
    e=
      2.0000 2.3000 2.6000 2.9000 3.2000 3.5000 3.8000
      #中间的数字为增量,如果向量中的增量不是恰好达到尾数,octave 将产生不超过尾数的一组向量。增量可以是负数并相应产生有一个递减的向量
    
    #打开或关闭分屏显示功能
    more off/on
    
    #octave提供了多个向量构造函数
    
    zeros(M,N) # 创建一个 M×N 的零矩阵 
    ones(M,N) # 创建一个 M×N 的全译矩阵
    linspace(x1,x2,N) # 创建一个 N 个元素的向量, 均匀分布于 x1
    和 x2
    logspace(x1,x2,N) # 创建一个 N 个元素的向量,指数分布与
    10^x1 和 10^x2 之间
    
    
    # 通过括号操作符操作向量中的元素,第一个元素的编号是1
    a = [1:2:6 -1 0]
    a=
      1 3 5 -1 0
    a(3)
    ans=
      5
    a(3:5)
    ans=
      5 -1 0
    
    # 每个算符前面的‘.’表示元素对元素的计算
    a=[1,2,3]
    b=[1,2,3]
    a.*b
    ans=
      1 4 9
    a*b
    error: operator *: nonconformant arguments (op1 is 1x3, op2 is 1x3)
    # 对乘方计算同样适用
    b.^2
    ans=
      1 4 9
    
    # 画出正弦曲线sin(x)的图像
    angles=linspace(0,2*pi,100);
    y=sin(angles);
    plot(angles,y);
    # 其中 linspace 命令创建了 0 到 2π 之间的 100 个数值
    
    replot # 更新图片
    grid on # 为图片添加网格线
    

    plot 命令中的颜色和样式选项 († 仅在 Matlab 中存在的选项)

    字符 含义 字符 含义 字符 含义
    w 白色 . - 实线
    m 品红 o 圆圈 : 虚线 †
    c 青色 x x 形 -. 点划线 †
    r 红色 + + 号 虚线 †
    g 绿色 * 星号
    b 蓝色 s 正方形 †
    y 黄色 † d 菱形 †
    k 黑色 † v 下三角 †
    < 左三角 †
    > 右三角 †
    p 五角星 †
    h 六边形 †
    # 在同一个plot窗口中画出多个图像使用
    hold on
    # 命令,默认plot会清除原图片上的内容
    hold off
    # 关闭该功能
    
    # 多幅图片可以通过figure命令来控制,在命令行中输入
    figure
    # 下一个plot命令将会在新窗口中绘制
    # 如果想返回到之前的图片,输入命令
    figure(1)
    
    # octave提供了print命令将图片打印的默认的打印机上
    print('graph1.png','-dpng')
    # 将当前图像保存为一个png文件
    
    # 添加某个目录到path中
    addpath('/home/bob/bin/octave')
    # 保存对path的修改
    savepath
    
    # 查看所有脚本
    what
    
    # 控制语句的用法
    if expression
        statements
    elseif expression
        statements
    else
        statements
    end
    
    switch x
    case x1
        statements
    case x2
        statements
    otherwise
        statements
    end
    
    for variable=vector
        statements
    end
    # 例如
    for  n=1:5
        nf(n)=factorial(n);
    end
    
    while expression
        statements
    end
    
    # 在 Octave 函数中参数是通过值传递的而不是通过 reference 传递并能返回多个返回值
    # 函数的格式如下
    function [output1,output2,...]=functionname(input1,input2,...)
    
    # 函数示例1:角度制正弦函数
    function s=sind(x)
    % SIND(x) Calculates sine(x) in degrees
    s=sin(x*pi/180);
    endfunction
    # 通常octave不需要return语句,不过有时可在函数体中间跳出。
    
    # 函数示例2:单位跃阶函数
    function y = ustep(t, t0)
      [m, n] = size(t)
        if m ~= 1 & n ~= 1
        error("T must be a vector")
      end
      y = zeros(m, n)
      for k = 1 : length(t)
        if t(k) >= t0
          y(k) = 1
        endif
      endfor
    endfunction
    
    t = -1:0.1:4;
    v = ustep(t, 0) - ustep(t, 1)
    plot(t, v)
    axis([-1 4 -1 2]) % 调整坐标位置
    
    # 矩阵创建函数
    # 创建对角矩阵
    diag([1,2,3,4])
    # 若A为一矩阵则diag(A)返回该矩阵的对角元
    # 创建单位矩阵
    eye(4)
    
    # 创建复合矩阵
    B = [2 0; 0 -1; 1 0]
    comp = [eye(3) B; A zeros(2, 2)]
    comp=
      1 0 0 2 0
      0 1 0 0 -1
      0 0 1 1 0
      5 7 9 0 0
      -1 3 -2 0 0
    # 在此过程中需要注意各个子矩阵的行列数的匹配
    
    # 提取矩阵元
    J = [1 2 3 4; 5 6 7 8; 11 12 13 10]
    J(1, 1) % 1
    J(2,3) % 7
    J(1:2, 4) % 行1-2, 第四列 [4;8]
    J(3,:) % 第三行,所有类 [11 12 13 10]
    J(3,2:3)=[-1 0]
    
    # 基本矩阵函数
    
    eye 创建单位矩阵
    zeros 创建全零矩阵
    ones 创建全一矩阵
    rand 创建随机数矩阵
    diag 创建一个对角矩阵,或者提取一个矩阵的对角元
    inv 求矩阵逆矩阵
    det 求矩阵特征值
    trace 求矩阵的迹
    eig 求矩阵的特征向量和特征值
    rank 求矩阵的秩
    null Calculate a basis for the null space of a matrix
    rref Perform Gaussian elimination on an augmented matrix
    lu Calculate the LU decomposition of a matrix
    qr Calculaate the QR decompotitionof a matrix
    svd Calculate the SVD of a matrix
    pinv Calculate the pseudoinverse of a matrix
    
    

    相关文章

      网友评论

          本文标题:octave初次使用记录

          本文链接:https://www.haomeiwen.com/subject/avwfqftx.html