如何学习matlab编程程

五音纷兮繁会,君欣欣兮乐康
字号:大 中 小
&&& Matlab作为一个强大的计算平台已经广为人知,但是人们往往注重Matlab的函数,工具箱,而忽视了其面向对象编程的能力,我上网google了一下,好像没有什么中文的介绍,偶有高手涉猎一下,也是言简意赅,不能尽兴。今天我就做一个小小教程,用最简单的例子说明一下Matlab编程中类的使用。这里假设诸位看官已经有了基本的Matlab知识,所有的介绍也建立在此基础上。
&&& Matlab中创建类的方法有两种:
&&& 1、使用单一的m文件。把类的定义和类方法的实现都放在一个m文件中,用类的名字命名文件,即"类名.m"。这样的实现方法与C++、java等常用编程语言相似,我本人也倾向于这种方法。
&&& 2、使用@文件夹。建立一个文件夹,命名的方式是“@类名”。所有的类定义及方法文件都放在这个目录下,类的方法可以使用单独的文件,用方法名来命名。这种方法是Matlab早期版本的类实现方法,现在新的版本下面也支持这种方式。
&&& 当然,对于第2种方法,随着Matlab版本的更新,以7.6版本为分水岭,前后还是有所区别,当然也是后面的版本兼容以前的方式,下文会举例说明,没有兴趣了解的也可以跳过,毕竟掌握最新的东西就OK了,过去的就让他过去吧。
&&& 一、首先看一下使用单一m文件的例子。
&&& 把这个文件保存为example1.m,放在Matlab的当前工作目录或者搜索路径里,就可以使用example1这个类了。
&&& &&& &&& 如果没有display函数的话,Matlab就会使用默认的类显示信息,如下图所示:
&&& &&& 各位看官可能注意到了,我们定义类变量的时候还定义了一个常量z,调用z的时候直接使用“类名.变量名”的方式就行了。
&&& &&& 好了,单一m文件的类构造方法就介绍到这里了,很简单是不是?
&&& 二、下面我们来看看@文件夹方法实现类的过程和注意的要点。
&&& 首先要新建一个目录,这里的例子类名是example2,所有文件夹的名字为@example2,当然也是放在Matlab的当前工作目录或者是搜索路基里面。
&&&&在这个目录里,要有至少一个文件,即example2.m,这个文件包含了类定义和构造函数,当然也可以包含其他类函数,如果所有函数都写在这个文件里就是单一m文件的形式了。不过@文件夹方式下,其他的类函数是可以独立为一个普通的m文件的,就跟通常使用的函数文件一样,只是因为放在这个@文件夹下,就被Matlab认为是该类的类函数。这种方法适合有很多类函数的时候,便于管理。
&&& example2类跟example1类的内容是一样的,这里我们只是把prod这个类函数独立出来,单独作为一个m文件,就是将这个函数的部分剪切出去,保存成prod.m。其他的完全一样。需要的注意的是,在使用example2这个类的时候,不能在@example2这个目录里,必须在目录外,因为Matlab把整个目录看作一个整体。另外,只要是分成两个或两个以上的文件来实现一个类的情况,就必须用@文件夹方法,而且所有文件必须都放到该文件夹内。
&&& 所以该目录的结构是:
&&& &&& 现在我们来说说7.6版本之前的@文件夹方法和之后的方法有什么不同。现在再用7.6之前的方式实现一下example1,取名example3。
&&& 主要的不同就在于类定义文件,即example2.m和我们example3.m,虽然都是以类名来命名,但是实现方法大不相同。
&&& example2.m的类实现跟example1.m是一样的,只是把prod函数分离出去了。
&&& &&& 但是example3.m就完全是一个函数,没有classdef关键字,关键点是class函数。
&&& &&& 其他的display和prod函数内容都完全一样,只是独立为一个m文件。
&&& 目录结构如下:
&&& &&& 三、最后我们聊聊包的概念。包的概念也就是命名空间的概念,把相关的类和函数通过一个包来组织起来,使之不予其他的同名类或者函数相混淆。
&&& 在Matlab中,包的实现方法就是用“+包名”的形式来创建一个目录,也是要放到Matlab当前工作目录或者搜索路径中。使用包里面的类或者函数的时候,只要使用“包名.类名”或者“包名.函数名”即可。
&&&&我们创建一个目录,取名+packageExample,然后将example1.m拷贝进去,然后在包目录外调用,结果如下:
&&& &&&&&&& 目录结构如下:
&&& 是不是很简单,好吧,今天就写到这里,至于更加深入的类的应用,就需要各位看官在日后细细研究了。
function open_phone(e) {
var context = document.title.replace(/%/g, '%');
var url = document.location.
open("/ishare.do?m=t&u=" + encodeURIComponent(url) + "&t=" + encodeURIComponent(context) + "&sid=70cd6ed4a0");
!觉得精彩就顶一下,顶的多了,文章将出现在更重要的位置上。
大 名:&&[]&&[注册成为和讯用户]
(不填写则显示为匿名者)
(您的网址,可以不填)
请根据下图中的字符输入验证码:
(您的评论将有可能审核后才能发表)
已成功添加“”到
请不要超过6个字MATLAB编程(matlabprog) MATLAB编程基础,GUI,面向对象,3D
这样的厕所你敢体验吗?自己可以往外打望,但外面的人不能“静观其便”的透明公厕。最近,云南大理一景区现透明厕所
摘要:一幅画藏11只妖怪 考眼力引发全球热搜 你能找出几只?又是一次引发全球围观的考眼力活动。日前,一张看似
骑一下共享单车,一辆豪车的钱(41万)就没了。
温度适中 由岩石构成 可能有液态水主星LHS 1140与它的“超级地球”行星艺术效果图。  英国《自然》杂志
  中国首个货运飞船天舟一号于20日19时41分准时在海南文昌航天发射场,由新型运载火箭长征七号发射升空。由
范爷都在做线雕了,你还犹豫什么?
西游记中最窝囊的妖精
以下精彩内容为粉丝亲身经历投稿? 多吃这些卵巢变年轻!女人你要这样做,不会变成黄脸婆! 由于本篇内容为粉丝亲
﹤﹤最近认识了一位朋友,今天特别想跟大家分享她的故事。标题是改编自她最近写过的一篇爆款文章,关注之后,去后台}

我要回帖

更多关于 matlab编程实例100篇 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信