• Octave Tutorial(《Machine Learning》)之第五课《控制语句和方程及向量化》


    第五课 控制语句和方程 For,while,if statements and functions

    (1)For loop

    v=zeros(10,1) %initial vectors

    for i=1:10, %Assign for the vectors

    v(i) = 2^i;

    end;

    v

    (%You can also do that:

    indices=1:10;

    for i=indices,

    v(i)=2^i;

    end;

    v

    )

    (2)whileloop

    I = 1;

    while I <= 5,

    v(i) = 100;

    I = i+1;

    end;

    v

    (3)break statememts

    i=1;

    while true,

    v(i) = 999;

    I = i+1;

    if I == 6,

    break;

    end;

    end;

    (4)if-else statements

    v(1) = 2;

    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;

    (5)Funtions

    1:桌面上有一个名为“squareAndCubeThisNumber.m”的文件,内容如下:

    function [y1,y2] = squareAndCubeThisNumber(x)

    y = x^2;

    y = x^3;

    要调用此函数,方法如下:

    (1)输入pwd,查看当前文件所在路径,若不在和“squareThisNumber.m”文件的同一目录下,有两种方法进入同一目录:

    1)cd /home/flipped/Desktop

    2)addpath(' /home/flipped/Desktop') %Octave search path (advanced/optional)

    (2)调用 squareThisNumber函数,输入如下:

    quareThisNumber(5

    从此例还可看出,Octave不同于其他语言的一点是,函数可以返回两个及两个以上的值。

    2:通过少量数据集计算其成本函数

    桌面上有一个名为“costFuctionJ.m”的文件,内容如下:

    unction J = costFuctionJ(X, y, thera)

    m = size(X,1);

    predictions = X*thera;

    sqrErrors = (predictions-y).^2;

    J = 1/(2*m)*sum(sqrErrors);

    设定 X = [1 1;1 2;1 3](第一列均为x0值,第二列为样本集x1,x2,x3的值)

    y = [1;2;3](样本集中y的值)

    thera = [0;1];(假设当x0为0时,y为0;x1为1时,y为1

    运行函数得结果等于0. (若设thera = [0,0],运行函数结果为2.3333.)

    向量化 Vectorization

    优点:(1)利用各种语言中经过高度优化的代数库会使你的代码运行速度更快,更有效。(2)这也意味着你可以用更少的代码实现一些功能。

  • 相关阅读:
    文件处理--文件操作
    三元运算
    alex 推荐的书
    python字符串、列表和字典的说明
    运算符
    while else语句
    格式化输出
    数据类型-元组
    数据类型-集合
    字符串
  • 原文地址:https://www.cnblogs.com/flippedkiki/p/6362990.html
Copyright © 2020-2023  润新知