Advertisement

机器学习——Octave语法

阅读量:

Octave语法规则基础操作项中包含多个关键要素:注释说明;幂运算;条件关系中的相等情况;条件关系中的非等情况;逻辑与运算符;逻辑或运算符;非异或运算符;赋值操作步骤;变量显示命令disp或其他直接输出指令;以及向量及其矩阵运算项

  • 数据操作
    • 计算维度大小
    • 导入数据集
    • 列出所有变量名称
    • 删除特定变量(varname)
    • 清除所有变量(all variables)
    • 将数值保存到文件中
    • 将数据存储在工作目录中
    • 创建索引结构

数据运算包括:
* 矩阵相乘
* 向量点积
* 矩阵各元素取幂
* 元素倒数值
* 对数值
* 以e为底的指数函数
* 绝对值大小
* 负号
* 加运算
* 转置操作
* 函数处理过程
* 矩阵伪逆运算

  • 绘图
    • 绘制绘图

    • 在上一图中继续绘制图形,在图形窗口中执行绘制操作

    • 设置X轴标签

    • 设置Y轴标签

    • 添加图表说明

    • 设置图表标题

    • 将图表保存为png格式文件至工作目录

    • 关闭当前图像窗口

    • 指定当前图形窗口名称为特定名称

    • 创建子图布局以将多个图形显示在同一窗口中

    • 设置坐标轴范围为指定区间

    • 显示二维数据热力图以展示矩阵内容

      • 控制语句
      • 函数定义
      • Octave命令指南

Octave语法

基础操作

1.注释%

2.次方^

2^6

3.逻辑判断相等==

4.逻辑判断不等~=

5.与&&

6.或||

7.异或 xor()

xor(1,0)

8.赋值=

复制代码
    a=3;
    b='hi';
    c=3>=1;

9.变量显示disp()或直接输出变量

复制代码
    a=pi;
    disp(a);
    disp(sprintf('2 decimals:%0.2f',a))
    
    
    format long
    a

10.向量与矩阵

复制代码
    a=[1 2;3 4;5 6] %三行两列矩阵
    a=[1;2;3] %三行一列矩阵 或 三维列向量
    a=[1 2 3] %三列一行矩阵 或 三维行向量
    
    a=[1:0.1:2]%从1到2 ,步长为0.1,绘制坐标轴时有用
    
    a=1:6  %从1到6,步长为1
    
    a=ones(1,3) %[1 1 1]
    a=2*ones(2,3) %[2 2 2;2 2 2]
    a=zeros(1,3) %[0 0 0]
    
    a=rand(1,3) %生成随机值为0到1的一行散列矩阵
    a=randn(1,3) %矩阵所有值服从均值为0,方差为1的正态分布(normal distribution)
    
    a=-6+sqrt(10)*(randn(1,10000)) %均值-6,方差 10
    
    hist(a) %绘制10个方块的直方图(histogram)
    
    hist(a,50) %绘制50个方块的直方图
    
    a=eye(4) %四行四列的单位矩阵(identity matrix)

数据操作

1.维数显示size()

复制代码
    sz=size(a) %显示矩阵维数 [行数 列数]
    sz=size(A,1) %返回显示行数  
    sz=size(A,2) %返回显示列数
    length(a) %行、列最长的维数

2.加载数据load

复制代码
    load xxx.dat

3.显示所有变量who

复制代码
    who %显示所有工作环境中设置的变量
    
    whos %同上,但包括具体信息

4.删除变量clear varname

5.删除所有变量clear

6.转存数值

复制代码
    v=priceY(1:10) %将priceY的前十个数据存到v中

7.存储数据到工作目录

复制代码
    save filename v
    save filename v -ascii %存储为文本文件

8.索引

复制代码
    a(3,2) %索引(行,列),即第三行,第二列
    
    a(2,:) %第二行所有元素 ':'表示该维所有元素
    
    a([1 3],:) %显示第一、三行
    
    a(:,2)=[10;11;12] %对第二列赋值
    
    a=[a,[100;101;102]] %添加列元素
    
    a(:) %将所偶元素转放入一个列向量
    
    c=[a b] %将a、b两个矩阵连接在一起为c,左右排列
    
    c=[a;b] %将两个矩阵连接在一起,上下排列

数据运算

1.矩阵乘*

复制代码
    a*c

2.矩阵点乘.*

复制代码
    a .* b %矩阵点乘,对应各个元素相乘,要求两个矩阵大小相同

3.矩阵元素乘方.^

复制代码
    a .^ 2

4.元素倒数./

复制代码
    1 ./ a %每个元素元素倒数

5.对数log()

复制代码
    log(a)

6.e的幂exp()

复制代码
    exp(a)

7.绝对值abs()

复制代码
    abs()

8.负数-

复制代码
    -a

9.加法

复制代码
    a+ones(length(v),1) %同v+1

10.转置'

复制代码
    a' %得到a的转置矩阵

11.函数操作

复制代码
    a=[1 15 2 0.5];
    val=max(a)   %返回最大值
    [val,ind]=max(a) %val为最大值,ind为最大值的索引
    
    b=[1 2;3 4]
    val=max(b) %若b是矩阵,则返回每列最大元素
    
    %a=[1 15 2 0.5]
    a<3 %返回小于3的判断,0为假,1为真
    
    find(a<3) %返回小于3的索引
    
    A=magic(3) %产生一个3*3的魔方阵,矩阵所有行、列、对角线之和相同
    %A= [8,1,6;3,5,7;4,9,2]
    
    [r,c]=find(A>=7) %返回符合条件的元素的行列,r c 分别以列向量存储
    
    sum(a) %求和
    prod(a) %求乘积
    floor(a) %去下整
    ceil(a) %去上整
    
    max(rand(3),rand(3)) %返回较大的矩阵
    
    max(b,[],1) %返回每列最大元素,同max(b)
    % [8,9,7]
    
    max(b,[],2) %返回每行最大元素
    %[8;7;9]
    
    max(max(b))  %返回矩阵最大元素
    
    sum(b,1) %返回每列相加值
    sum(b,2) %返回每行相加值
    
    sum(sum(b .* eye(9))) %对角线元素求和
    
    sum(sum(b .* flipud(eye(9)))) %斜对角线元素和flipud上下翻转

12.矩阵求逆pinv()

复制代码
    pinv(b) %同inv(b'*b)*b'

绘图

复制代码
    %plotting
    t=[0:0.01:0.98];
    y1=sin(2*pi*4*t);
    plot(t,y1);   %绘图
    y2=cos(2*pi*4*t);
    plot(t,y2);
    
    hold on; %在上一图中继续绘图,hold off关闭
    plot(t,y2,'r') %用不同颜色绘图
    
    xlabel('time')
    ylabel('value')
    
    legend('sin','cos')
    title('my plot')
    
    print -dpng 'myplot.png'
    close
    
    figure(1);plot(t,y1);
    figure(2);plot(t,y2);
    figure(1);clf; %指定某个图,clf-清空图
    
    subplot(1,2,1) %分成1*2的图,访问第一个图
    plot(t,y1);
    
    subplot(1,2,2) %分成1*2的图,访问第二个图
    plot(t,y2);
    
    axis([0.5 1 -1 1]) %改变坐标轴x的范围为 0.5-1  y坐标轴范围 -1 - 1
复制代码
    %绘制矩阵
    A=magic(5)
    imagesc(A)

1.绘图plot()

2.在上一图中继续绘图hold on,hold off关闭

3.标记X坐标轴xlabel()

4.标记Y坐标轴ylabel()

5.标记图中曲线legend()

6.标记图标题title()

7.保存.png图片到工作目录print -dpng 'filename'

8.关闭图像close

9.指定图像标号figure()

10.在同一个窗口里分割为多个图像subplot()

11.改变坐标轴的范围axis()

12.绘制矩阵imagesc()

控制语句

复制代码
    v=zeros(10,1);
    for i=1:10,
    v(i)=2*i;
    end;
    
    % u can use 'break' 'continue' inside for and while loops to control execution
    
    %while
    i=1;
    while i<=5,
    v(i)=100;
    i=i+1;
    end;
    
    %break
    i=1;
    while true,
    v(i)=999;
    i=i+1;
    if i==6,
        break;
    end;
    end;
    
    if v(1)==1,
    disp('the value is one');
    elseif v(1)==2,
    disp('the value is two');
    else
    disp('the value is not one or two')
    end;

函数定义

复制代码
    function y=squareThisNumber(x)
    y=x^2;

执行指定的函数调用

  • 调整工作目录位置
    切换工作目录位置
    \texttt{cd} 命令
  • 添加搜索路径
    通过命令向当前路径中添加指定路径
    \texttt{addpath} 命令(单引号内为具体路径)
    保存当前路径为...
    \texttt{savepass} 命令(单引号内为具体文件名)
  • 该软件程序能够返回多个计算结果
    Octave能够生成多个输出结果
复制代码
    function [y1,y2]=squareandCubeThisNo(x)
    y1=x^2
    y2=x^3

Octave命令指南

http://enacit1.epfl.ch/octave_doc/refcard/refcard-a4.pdf

全部评论 (0)

还没有任何评论哟~