matlab train函数_Matlab面向对象编程(1)

matlab train函数_Matlab面向对象编程(1)_第1张图片

M黑:Matlab也算编程语言?

M粉:他是没有OOP还是没有IDE?

前言

        net = newff([0,1],[1],[1,2,3])

563cf4ebfce71286f74ad2211152a2a4.png

定义了一个神经网络,在工作空间中可以看到,net是这么一个变量,而这个network就是这个变量的类型,于是我们称net这个变量是network类的一个实例化的对象。

matlab train函数_Matlab面向对象编程(1)_第2张图片

前述的那段程序不加分号,输出到命令行窗口,会有这些东西,这个“name”之类的蓝色关键字,就是这个类型的变量所具有的properties(属性),我们可以用net.name来获取相应内容(在GetAccess不为private的情况下)。

net.name

ans =

Custom Neural Network

输入下方语句,则利用一个简单样本对网络进行了训练。

       net.train([0,1],1)

这个train就是这个net的方法(methods)之一。

我的不专业的看法:

面向对象编程(oop)中的类与结构体有相似处但也不尽相同,最大的特点是,对象l可以以.method的方法来调用类内函数,且类内操作可以不产生新的变量,以节省空间。

正文案例:

matlab主界面左上角新建->类,可以得到初始化的标准类模板。

本例中,建立一个简单的人类:

classdef human   %classdef properties methods三个关键词表示一脸懵逼
    properties   %知乎编辑器怎么就没有识别到?
        age
        sex
    end
    methods
        function obj = human(age,sex)
            obj.age = age;
            obj.sex = sex;
        end
    end
end

properties,methods,classdef都是关键字。human是类名称,也必须是这个文件的文件名。每一个类都需要有自己的构造函数,即在methods里必须存在一个与类名相同的函数,这个函数的输出变量就是类产生的对象。输入以下第一条,即可构造一个human类对象,变量如最后一图所示。

man = human(18,'man')
man = 
  human (具有属性):
    age: 18
    sex: 'man'

83aad2a528d33031d994b1f6e99c7e26.png

你可能感兴趣的:(matlab,train函数)