Matlab class文件 简单上手使用

1.简单的书写规范

一般通过软件(拓展)新建功能,可以选择新建一个脚本、函数或者是类。当然文件中以类的形式书写代码,保存后matlab将自动识别该文件为类。
当使用软件新建类后,新建的文件中包含了类文件的基础格式(我使用的软件是MATLAB R2014b):

classdef Untitled3
    %UNTITLED3 此处显示有关此类的摘要
    %   此处显示详细说明
    
    properties
    end
    
    methods
    end
    
end

classdef 定义的是 类名,一般要求与文件名一致。类名 与 关键字之间,可以加括号(内填参数),规定是否为抽象类、是否允许继承、是否被子类可以继承、是否有构造函数等等。当然这也是选填内容,默认的选择都是开放易用型的。
在这里插入图片描述
properties [类的] 属性,关键字后,可以加括号(内填参数),规定成员变量的是否公私有(Access=public\private)、创建观测(GetObservable=false\true)、对成员访问权限(GetAccess、SetAccess=public\private?=另外一个类名)。可以有多个(如两个 属性 结构),用以分开定义常量、变量。

methods 方法,书写结构类似于前。关键字后,可以加括号(内填参数),规定成员方法的是否公私有、抽象、静态等
下面是没有看懂,但是有用的功能:

使用属性set方法来验证分配给属性的值。
属性set方法可以执行诸如对输入值进行错误检查之类的操作,然后再采取任何必要的操作来存储新的属性值。

值类设置函数必须将修改后的对象返回给调用函数。 处理类不需要返回修改后的对象。
在这里插入图片描述

methods 下就可以以函数的形式书写方法了。

 methods
      function node = dlnode(Data)
      % DLNODE  Constructs a dlnode object.
         if nargin > 0
            node.Data = Data;
         end
      end
 end

一般的,methods 下要包含构造方法(也可以省略不写),构造方法要求方法名字与类名一致,常用于接收,外界传递给 类 的参数。

properties
    x
    y
end
methods
    function obj=classTest(a,b) //classTest 指类名
        obj.x=a;
        obj.y=b;
    end       
end

此外,还有暂时不做过多的介绍。
events 类事件EventName

end

enumeration 类列举EnumName

end


在对类的存放上,可以将类(如 classTest ),存放在@开头的名字为类名的文件夹中(如 @classTest ),matlab会将整个文件夹视为该类整体,文件夹外对该类进行访问。也可以将类中的某些方法独立出来,形成函数文件存放在该文件夹中。如以 examp 类为例,独立出类函数 prod。
在这里插入图片描述

2.对其访问

一般的,matlab对此要求的不是很严,在同一目录下,当上述采用默认的限制(成员变量、方法均为公有),脚本可以直接访问类内成员,直接使用名字即可。

也可以使用:类名.成员 的方式(成员包括成员变量、成员函数),访问类内成员。

class_one = classTest(1,3); //类实例化为对象class_one 
classTest.dlnode(5);  //访问类内成员方法
classTest.x ;  //访问类内成员变量

3.引用

1.https://blog.csdn.net/qinze5857/article/details/80545885
2.https://blog.csdn.net/beechina/article/details/50933860
3.https://blog.csdn.net/qinze5857/article/details/79975095?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase
4.https://blog.csdn.net/luolang_103/article/details/83268433?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase

热门文章

暂无图片
编程学习 ·

mysql8 windows版密码忘记如何重新设置?

本机安装位置:D:\Program Files (x86)\java\mysql-8.0.13-winx64重设密码具体过程:还好有一个navicat的连接可以打开,查看其中的用户名和主机名称(一般默认是这个,改了又忘了的话我也没办法了)打开cmd,用管理员的身份运行,先关闭mysql(net stop mysql);然后进入mysql8所…
暂无图片
编程学习 ·

vue打包后修改服务器地址

1.在public文件下新建config.js文件2.修改config.js文件 var PLATFROM_CONFIG = {}; // 本地环境 PLATFROM_CONFIG.baseUrl = "服务器地址" // 正式环境 // PLATFROM_CONFIG.baseUrl = "服务器地址"3.在封装好的axios里面去修改,我的是4.在index.html中引…
暂无图片
编程学习 ·

关于Error:java: Compilation failed: internal java compiler error的解决方案

文章目录事故现场分析解决方案最终结果 事故现场分析 使用Idea导入新项目或升级idea或新建项目时会出现以上异常信息,导致这个错误的原因主要是因为jdk版本问题,此处有两个原因,一个是编译版本不匹配,一个是当前项目jdk版本不支持 常规分析:看一下compile,原来真的是错在…
暂无图片
编程学习 ·

Nginx系列(7):Nginx高并发初探

目录1、场景设置 — NGINX进程模型二、为什么框架如此重要?三、NGINX是如何运作的呢?四、NGINX内部工作进程五、NGINX是一个真正的大师六、更新配置文件升级NGINX七、结语原文出处:https://www.cnblogs.com/dz11/p/10215089.htmlNGINX 在网络应用中表现超群,在于其独特的设…
暂无图片
编程学习 ·

Web会话管理

1.会话管理基本原理 1.隐藏域 将表单中的内容在显示页面时隐藏,不显示数据,在JSP 中将input标签type设置为hidden 生成一个隐藏表单域。将会话的唯一标识记录到隐藏域中的value值中,并设定name值。提交给服务器之后,服务器会根据根据会话标识找到会话对象。 缺点:实现比较…
暂无图片
编程学习 ·

taro开发微信小程序 -- 下拉刷新和上拉加载

参考文档:https://taro-docs.jd.com/taro/docs/tutorial#%E9%A1%B9%E7%9B%AE%E7%9B%AE%E5%BD%95%E7%BB%93%E6%9E%84其实和微信小程序一样,只要设置页面配置信息并添加对应函数即可class Index extends Component {// 添加小程序页面配置信息config: {enablePullDownRefresh: …
暂无图片
编程学习 ·

SQL Server—游标(是什么?声明、打开、检索、关闭、释放)

目录游标是什么?如何创建一个游标?操作游标的四个步骤?如何判断游标的提取状态?关闭游标就可以了为什么还要释放呢?他们有什么区别?游标是什么? 是一种数据访问机制,它允许用户单独的操作数据行,而不是对整个行集进行操作。用户可以通过单独处理每一行逐条手机信息并对…
暂无图片
编程学习 ·

Android中给Layout添加点击事件

@Android中给Layout添加点击事件 步骤一:在layout控件中设置clickable和focuseable和id <LinearLayout android:id="@+id/to_anchor_dialog" android:onClick=“onClick” android:clickable=“true” android:layout_width=“match_parent” android:layout_hei…
暂无图片
编程学习 ·

Linux系统中的firewalld火墙管理及优化(firewalld)

Linux系统中的firewalld火墙管理及优化(firewalld)1.firewalld 的模块化管理及存储方式(1)火墙配置目录 /etc/firewalld 火墙模块目录 /lib/firewalld (2)firewalld的一些域网络区名称 默认配置 trusted(信任) 可接受的所有网络连接 home(家庭) 用于家庭,仅接受ss…
暂无图片
编程学习 ·

nginx+tomcat 配置证书

nginx 配置证书 tomcat 配置文件说明#user nobody; worker_processes 1;#error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info;#pid logs/nginx.pid;events {worker_connections 1024; }http {include mime.typ…
暂无图片
编程学习 ·

查找序列元素(链表)

查找序列元素(链表) 问题描述: 使用带头结点的单链表编程: 一群学生排成一行,输入一个学号,请确定该学号学生所在的位置。 输入说明: 第一行输入学生信息: 第一个整数n(0<=n<=100),表示共有n个学生,其后有n个整数,表示n个 学生的学号 第二行及以后各行,…
暂无图片
编程学习 ·

unordered_map/unorderd_set使用与哈希介绍

在C++98中,STL提供了底层为红黑树结构的一系列关联式容器,在查询时效率可达到 O(logN),即最差情况下 需要比较红黑树的高度次,当树中的节点非常多时,查询效率也不理想。最好的查询是,进行很少的比较次 数就能够将元素找到,因此在C++11中,STL又提供了4个unordered系列的…
暂无图片
编程学习 ·

90后绝对不是用来管的!

作者:混沌大学来源:混沌大学(ID:hundun-university) 在知乎上,“如何管理90后员工”是一个长盛不衰的话题。一个备受关注的问题是这样的:最近公司录用了一批90后的新员工,基本上全都离职了,最短的半天,最长的也就工作了一周,迫切地想知道90后员工的求职观,什么样的…
暂无图片
编程学习 ·

程序员翻车时的 30 种常见反应!

**软件开发工作充满了挑战性。人无完人,对于程序员来说,写出有 bug 的代码是在所难免的。有些人很淡定,也有一些人会感到生气、沮丧、不安或气馁。在修复 bug 的过程中我们都经历了什么?这个值得我们一探究竟。 本文列出了程序员在修复 bug 时可能会说的一些话或者想法。我…
暂无图片
编程学习 ·

防火墙部署,功能及数据包分析。

防火墙部署方式的应用路由模式虚拟线模式部署透明模式(交换模式)访问控制和地天融信防火墙抓包 路由模式 防火墙的路由模式,主要是用于网络的出口位置,也就是防火墙的设备有一个网口配置公网地址。多出口加上多入口,有时也叫上下联(上联口向外网方向,下联口向内网方向)…
暂无图片
编程学习 ·

那些不常见,但却非常实用的 css 属性

作者:寒水寺一禅https://segmentfault.com/a/11900000228515431、-webkit-line-clamp可以把 块容器 中的内容限制为指定的行数。并且在超过行数后,在最后一行显示"..."这是正常的展示display: -webkit-box; /*值必须为-webkit-box或者-webkit-inline-box*/ -webkit…
暂无图片
编程学习 ·

【浅拷贝】Object.create()、Object.assign()、扩展运算符

文章目录【ES5】Object.create() 方法【ES6】Object.assign() 方法【ES6】对象展开运算符 "..."【ES5】Object.create() 方法第一层嵌套层原对象未被修改,而第二层开始,原对象被影响(计数器例子只有一层)【ES6】Object.assign() 方法第一层嵌套层原对象未被修改,…
暂无图片
编程学习 ·

在centos7中使用rpm安装Mysql

在centos7中使用rpm安装Mysql 安装环境centos7-64 软件版本:MySQL-5.7.10 下载所需安装包 1、我的另一条博客可直接下载压缩包 https://download.csdn.net/download/Linhan389/12565015 2、或者去清华大学镜像站下载所用的包 https://mirrors.tuna.tsinghua.edu.cn/mysql/yum/…