• 吴恩达机器学习_42控制语句


    一、for 语句

    >> v=zeros(10,1) %生成一个10*1的零矩阵
    
    v =
         0
         0
         0
         0
         0
         0
         0
         0
         0
         0
    
    >> for i=1:10,    %i从1循环到10
         v(i) = 2^i;
       end;
    >> v
    
    v =
               2
               4
               8
              16
              32
              64
             128
             256
             512
            1024

     二、 indices(索引)

    indices 可以代替for语句进行循环。

    >  indices=1:10;    %设置索引为1-10
    >> indices
    
    indices =
         1     2     3     4     5     6     7     8     9    10        %可以看到indices为1-10
    >> for i = indices,   %和i=1:10相同
        disp(i);
     end;
         1
         2
         3
         4
         5
         6
         7
         8
         9
        10

     三、while和if语句

    >> i = 1;
    >> while i<=5.
        v(i) = 100;
        i = i+1;
       end;
    >> v
    v =
             100
             100
             100
             100
             100
              64
             128
             256
             512
            1024
    >> i=1;
    >> while true,
        v(i)=999;
        i=i+1;
       if i == 6,
           break;
        end;
    end; 

    >> v

    v =

           999
           999
           999
           999
           999
           64
           128
           256
           512
           1024

    四、if-else语句

    >> v(1)
    
    ans =
       999
    >> 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;
    The value
    is two

    五、如何定义和调用函数

    首先需要建立一个以(函数名.m)为名的文件,最好使用写字板打开该文件,防止代码格式混乱。

    注意:函数文件必须放在MATLAB的路径中,才会被识别。(pwd命令:查看当前的路径,cd命令:更改路径)

    addpath命令可以增加自定义路径,使其被MATLAB接受。

    六、定义一个函数且返回多个值

    function [y1,y2] = squareandcubethisnumber(x)
    y1
    =x^2; y2=x^3;
    >> [a,b]=squareandcubethisnumber(5) a = 25 b = 125

    七、一个具体的例子

    function J = costfunctionj(X,y,theta)
    %X is the 'design matrix' containing our training examples.X是包含我们训练示例的设计矩阵
    %y is the class labels
    
    m= size(X,1);    % number of  training examples 训练样本的数量
    predictions = X*theta    % predictions of hypothesis on all m examples
    sqrErrors = (predictions-y).^2;    % squared errors 平方差,(A.^B):计算 A 中每个元素的B次方
    J = 1/(2*m) * sum(sqrErrors);    %求代价函数J

    >> X=[1 1;1 2;1 3]

    X =

    1 1
    1 2
    1 3

    >> y=[1;2;3]

    y =

    1
    2
    3

    >> theta = [0;1];
    >> j= costfunctionj(X,y,theta)

    predictions =

    1
    2
    3


    j =

    0

  • 相关阅读:
    使用C#调用C++类库
    C# IntPtr类型
    C# 调用C++ dll string类型返回
    C# try、catch、finally语句
    C语言 char *、char []、const char *、string的区别与相互转换
    C# 字符串string与char数组互转!
    C#如何调用C++(进阶篇)
    Springboot通过过滤器实现对请求头的修改
    【spring事务】
    命令行参数库:McMaster.Extensions.CommandLineUtils【转】
  • 原文地址:https://www.cnblogs.com/vzyk/p/11503157.html
Copyright © 2020-2023  润新知