当前位置:文档之家› Matlab robot tool 学习

Matlab robot tool 学习

Matlab robot tool 学习
Matlab robot tool 学习

Matlab robot tool 学习

一、Robottool的下载地址:

https://www.doczj.com/doc/034124516.html,/share/link?shareid=1167669811&uk=940448808&app= zd

二、网上的介绍:

1. PUMA560的MATLAB仿真

要建立PUMA560的机器人对象,首先我们要了解PUMA560的D-H参数,之后我们可以利用Robotics Toolbox工具箱中的link和robot函数来建立

PUMA560的机器人对象。

其中link函数的调用格式:

L = LINK([alpha A theta D])

L =LINK([alpha A theta D sigma])

L =LINK([alpha A theta D sigma offset])

L =LINK([alpha A theta D], CONVENTION)

L =LINK([alpha A theta D sigma], CONVENTION)

L =LINK([alpha A theta D sigma offset], CONVENTION)

参数CONVENTION可以取‘standard’和‘modified’,其中‘standard’代表采用标准的D-H参数,‘modified’代表采用改进的D-H参数。参数‘alpha’代表扭转角,参数‘A’代表杆件长度,参数‘theta’代表关节角,参数‘D’代表横距,参数‘sigma’代表关节类型:0代表旋转关节,非0代表移动关节。另外LINK还有一些数据域:

LINK.alpha %返回扭转角

LINK.A %返回杆件长度

LINK.theta %返回关节角

LINK.D %返回横距

LINK.sigma %返回关节类型

LINK.RP %返回‘R’(旋转)或‘P’(移动)

LINK.mdh %若为标准D-H参数返回0,否则返回1

LINK.offset %返回关节变量偏移

LINK.qlim %返回关节变量的上下限 [min max]

LINK.islimit(q) %如果关节变量超限,返回 -1, 0, +1

LINK.I %返回一个3×3 对称惯性矩阵

LINK.m %返回关节质量

LINK.r %返回3×1的关节齿轮向量

LINK.G %返回齿轮的传动比

LINK.Jm %返回电机惯性

LINK.B %返回粘性摩擦

LINK.Tc %返回库仑摩擦

LINK.dh return legacy DH row

LINK.dyn return legacy DYN row

其中robot函数的调用格式:

ROBOT %创建一个空的机器人对象

ROBOT(robot) %创建robot的一个副本

ROBOT(robot, LINK) %用LINK来创建新机器人对象来代替robot

ROBOT(LINK, ...) %用LINK来创建一个机器人对象

ROBOT(DH, ...) %用D-H矩阵来创建一个机器人对象

ROBOT(DYN, ...) %用DYN矩阵来创建一个机器人对象

2.变换矩阵

利用MATLAB中Robotics Toolbox工具箱中的transl、rotx、roty和rotz可以实现用齐次变换矩阵表示平移变换和旋转变换。下面举例来说明:

A 机器人在x轴方向平移了0.5米,那么我们可以用下面的方法来求取平移变换后的齐次矩阵:

>> transl(0.5,0,0)

ans =

1.0000 0 0 0.5000

0 1.0000 0 0

0 0 1.0000 0

0 0 0 1.0000

B 机器人绕x轴旋转45度,那么可以用rotx来求取旋转后的齐次矩阵:

>> rotx(pi/4)

ans =

1.0000 0 0 0

0 0.7071 -0.7071 0

0 0.7071 0.7071 0

0 0 0 1.0000

C 机器人绕y轴旋转90度,那么可以用roty来求取旋转后的齐次矩阵:

>> roty(pi/2)

ans =

0.0000 0 1.0000 0

0 1.0000 0 0

-1.0000 0 0.0000 0

0 0 0 1.0000

D 机器人绕z轴旋转-90度,那么可以用rotz来求取旋转后的齐次矩阵:

>> rotz(-pi/2)

ans =

0.0000 1.0000 0 0

-1.0000 0.0000 0 0

0 0 1.0000 0

0 0 0 1.0000

当然,如果有多次旋转和平移变换,我们只需要多次调用函数在组合就可以了。另外,可以和我们学习的平移矩阵和旋转矩阵做个对比,相信是一致的。

3 轨迹规划

利用Robotics Toolbox提供的ctraj、jtraj和trinterp函数可以实现笛卡尔规划、关节空间规划和变换插值。

其中ctraj函数的调用格式:

TC = CTRAJ(T0, T1, N)

TC = CTRAJ(T0, T1, R)

参数TC为从T0到T1的笛卡尔规划轨迹,N为点的数量,R为给定路径距离向量,R的每个值必须在0到1之间。

其中jtraj函数的调用格式:

[Q QD QDD] = JTRAJ(Q0, Q1, N)

[Q QD QDD] = JTRAJ(Q0, Q1, N, QD0, QD1)

[Q QD QDD] = JTRAJ(Q0, Q1, T)

[Q QD QDD] = JTRAJ(Q0, Q1, T, QD0, QD1)

参数Q为从状态Q0到Q1的关节空间规划轨迹,N为规划的点数,T为给定的时间向量的长度,速度非零边界可以用QD0和QD1来指定。QD和QDD 为返回的规划轨迹的速度和加速度。

其中trinterp函数的调用格式:

TR = TRINTERP(T0, T1, R)

参数TR为在T0和T1之间的坐标变化插值,R需在0和1之间。

要实现轨迹规划,首先我们要创建一个时间向量,假设在两秒内完成某个动作,采样间隔是56ms,那么可以用如下的命令来实现多项式轨迹规划:t=0:0.056:2; [q,qd,qdd]=jtraj(qz,qr,t);

其中t为时间向量,qz为机器人的初始位姿,qr为机器人的最终位姿,q为经过的路径点,qd为运动的速度,qdd为运动的加速度。其中q、qd、qdd都是六列的矩阵,每列代表每个关节的位置、速度和加速度。如q(:,3)代表关节3的位置,qd(:,3)代表关节3的速度,qdd(:,3)代表关节3的加速度。

4 运动学的正问题

利用Robotics Toolbox中的fkine函数可以实现机器人运动学正问题的求解。

其中fkine函数的调用格式:

TR = FKINE(ROBOT, Q)

参数ROBOT为一个机器人对象,TR为由Q定义的每个前向运动学的正解。

以PUMA560为例,定义关节坐标系的零点qz=[0 0 0 0 0 0],那么fkine(p560,qz)将返回最后一个关节的平移的齐次变换矩阵。如果有了关节的轨迹规划之后,我们也可以用fkine来进行运动学的正解。比如:

t=0:0.056:2; q=jtraj(qz,qr,t); T=fkine(p560,q);

返回的矩阵T是一个三维的矩阵,前两维是4×4的矩阵代表坐标变化,第三维是时间。

5 运动学的逆问题

利用Robotics Toolbox中的ikine函数可以实现机器人运动学逆问题的求解。

其中ikine函数的调用格式:

Q = IKINE(ROBOT, T)

Q = IKINE(ROBOT, T, Q)

Q = IKINE(ROBOT, T, Q, M)

参数ROBOT为一个机器人对象,Q为初始猜测点(默认为0),T为要反解的变换矩阵。当反解的机器人对象的自由度少于6时,要用M进行忽略某个关节自由度。

有了关节的轨迹规划之后,我们也可以用ikine函数来进行运动学逆问题的求解。比如:

t=0:0.056:2; T1=transl(0.6,-0.5,0); T2=transl(0.4,0.5,0.2); T=ctraj(T1,T2,length(t));

q=ikine(p560,T);

我们也可以尝试先进行正解,再进行逆解,看看能否还原。

Q=[0 –pi/4 –pi/4 0 pi/8 0]; T=fkine(p560,q); qi=ikine(p560,T);

6 动画演示

有了机器人的轨迹规划之后,我们就可以利用Robotics Toolbox中的plot函数来实现对规划路径的仿真。

puma560;T=0:0.056:2; q=jtraj(qz,qr,T); plot(p560,q);

当然,我们也可以来调节PUMA560的六个旋转角,来实现动画演示。drivebot(p560)

例子:

L1 = LINK([0 0 pi/2 0 0],'standard')

L2 = LINK([-pi/2 0.150 pi/2 0 0],'standard')

L3=LINK([0 0.57 0 0 0],'standard');

r = robot({L1 L2 L3})

https://www.doczj.com/doc/034124516.html, = 'M'

drivebot(r)

matlab学习心得体会

matlab学习心得体会 篇一:MATLAB心得与体会 自己刚刚接触matlab有半个学期的时间,说实话我现在对MATLAB还是摸不着头脑,一方面是自己接触的时间太短,另一方面,就是自己在上机方面投入的时间有限,实践比较少。现在,我对MATLAB的印象仅仅在解决习题和绘制图形上,但是我很喜欢MATLAB的简单的语法,易于绘制图形,编程也非常容易, 并且具有功能强大的开放式的toolbox。因此,尽管我一直没有这方面的应用,但是我还是对它非常感兴趣,自己正打算暑假好好研究研究MATLAB。下面是我学习MATLAB在理论和实践方面的一点心得与体会,可能有些地方自己理解的不是很正确,但是随着学习的深入,我想我可以发现自己的错误所在。 首先我想说的是,在理论方面,在学习MATLAB过程中,我感觉到它和c语言有许多相似之处,他有c语言的特征,但是比c语言编程计算更加简单,适合于复杂的数学运算。但是MATLAB跟其他语言也有着很大的不同。现在用的比较多的编程语言,除了MATLAB就应该是c、c++、VHDL,VB 和Delphi也接触过,如果自己抱着“把其他语言的思想运用在MATLAB里面”的话,那么我想,即使程序运行不出错,也很难把握MATLAB的精髓,也就很难发挥MATLAB的作用了。众所周知MATLAB是一个基于矩阵运算的软件,但是,真正

在运用的时候,特别是在编程的时候,许多人往往没有注意到这个问题。在使用MATLAB时,受到了其他编程习惯的影响,特别是经常使用的C语言。因此,在MATLAB编程时,for循环(包括while循环)到处都是。.这不仅是没有发挥MATLAB所长,还浪费了宝贵的时间。我这里想说的一点是,往往在初始化矩阵的时候注意到这个问题,懂得了使用矩阵而不是循环来赋值,但是,在其他环节上,就很容易疏忽,或者说,仍然没有摆脱C++、C的思想。 MATLAB博大精深,涉及的内容很多,所以,我认为不要试图掌握MATLAB的每一个功能,熟悉和你专业最相关的部分就可以了,这也是老师在课堂上经常说的。学MATLAB并不难,难的是学会怎么用,所以经常上机实践是很必要的。我自己感觉学习MATLAB和以前的编程能力没有太多的关系,所以不要担心自己编程能力差,自己一定用不好MATLAB,只要自己肯在这上面花费时间和精力,就一定能有所收获。在学习MATLAB的过程中,不要只问不学,并且学MATLAB要有耐心,要大胆的去试,哪怕只有一丁点儿可能,只有自己动手去实践了才能发现错误的所在,利用这个解决问题的方法要试着解决类似的问题,要举一反三,要学会变通。多读MATLAB高手写的程序,找到一个高手多向他请教这方面的问题,在几个大的论坛可以搜索出一大堆的帖子,然后慢慢去看吧,从中可以学到很多东西。善于总结,学习过的知识,

学习Matlab 心得体会

Matlab 心得体会 本学期通过对MATLAB的系统环境,数据的各种运算,矩阵的分析和处理,程序设计,绘图,数值计算及符号运算的学习,初步掌握了MATLAB的实用方法。通过理论课的讲解与实验课的操作,使我在短时间内学会使用MATLAB,同时,通过上机实验,对理论知识的复习巩固实践,可以自己根据例题编写设计简单的程序来实现不同的功能,绘制出比较满意的二维三维图形,在实践中找到乐趣。 MATLAB是一个实用性很强,操作相对容易,比较完善的工具软件,使用起来比较方便,通过操作可以很快看到结果,能够清晰的感觉到成功与失败,虽然课程中也会出现一些小问题,但是很喜欢这门课程。在为学习这门课前就听说了他的强大,因为现在的很多模型都是需要这些分析软件的。曾经旁听过学校数学建模的课程,当时老师用的是lingo。对那个只需要U盘携带就可以安装的小东西记忆深刻。等到学习matlab时觉得这才是真正的王道啊。 它不仅有强大的运算功能,还有强大的绘图功能,虽然学习了有一个学习,但是我对他的了解额仅仅是一点点,或许连入门都谈不上。因为我学习时了解到一个现实。就是matlab 的学习依赖有比较好的数学功底,其中我看最经常运用到的就是矩阵。我从网上了解到matlab是一门高等数学和计算机技术结合的东西,学习它必须具有相应的数学和计算机知识。然而很可惜,我的书写不是很好。每次讲到这个部分的时候就觉得听说理解无能了。特别是我今年还是大三。虽然这学期的学习的时间短暂,就算时间足够,老师也不能把所有的都讲解给我们,因为一个软件的功能需要我们自己不断的去摸索,老师也不可能知道所有。老师只是个指路人,最终的学习还是要靠自己。而且在摸索的过程中,我们能够发现和体会学习的快乐。痛并快乐着是种常态了吧。 自我感觉学习matlab与其说是学习一门软件,更不如说是学习一门语言。用一种数理的语言描述现象,揭示表象下的规律。此外,我认为matlab中的作图功能很强大,不仅简单的函数现象可以明确画出,而且一些点状物,甚至立体图也可以画出。大一上微积分的时候,老师曾经多次在课件中加入用matlab画出的图来。不论是一维二维三维等等,都能很好的画出来。只要能编写出函数式,在短短的几秒之内,他就会呈现在你眼前。另外就是图形的直观性,这是由阴影的制作的。而且可以根据需要,坐标图上加标题,坐标轴标记,文本注释级栅格等,也可以指定图线形式,比如是虚线。颜色也可以自己来定。可以在同一张图上画,也可以单个显示。 在学习的过程中,因为以前学过access中的select语言,觉得就编写这方面是有共性的,但是matlab的编程语言似乎更多更复杂一点,这是由于涉及的数学模型,数学公式更多的原因。可是今年的这门课真的是让我感到没学到什么,估计也是因为我抱着看一看的随意态度来的吧,也没有那种遇到不懂的就一定要弄懂它的决心和毅力。说什么都是借口了,无法掩饰我没有学好它的事实。事实上,我觉得今年这门课的重点并不是让我们掌握这种软件的具体用法,而是主要向我们展示如何用它去解决一些金融问题,数学问题。这点让我很郁闷,因为我不懂得原理,听起来这门课倍感吃力啊。可是嘛,年轻没有什么不可以,又有谁可以断言我接下来的生活中不能好好学习这个东西为自己的工作,学习,生活,研究兴趣带来方便呢。 从大学开学的见闻到现在学习MATLAB,感觉这是一个很好的软件,语言简便,实用性强。作为一个做新手,想要学习好这门语言,可以说还是比较难的。在我接触这门语言的这些天,除了会画几个简单的图形,其他的还是有待提高。从另一个方面也对我们大学生提出了两个要求——充实的课外基础和良好的英语基础。在现代,几乎所有好的软件都是来自国外,假如不会外语,想学好是非常难的。

不错的Matlab神经网络工具箱实用指南

Matlab的神经网络工具箱实用指南 文章摘要:第一章是神经网络的基本介绍,第二章包括了由工具箱指定的有关网络结构和符号的基本材料以及建立神经网络的一些基本函数,例如new、init、adapt和train。第三章以反向传播网络为例讲解了反向传播网络的原理和应用的基本过程。 第一章介绍 1.神经网络 神经网络是单个并行处理元素的集合,我们从生物学神经系统得到启发。在自然界,网络功能主要由神经节决定,我们可以通过改变连接点的权重来训练神经网络完成特定的功能。 一般的神经网络都是可调节的,或者说可训练的,这样一个特定的输入便可得到要求的输出。如下图所示。这里,网络根据输出和目标的比较而调整,直到网络输出和目标匹配。作为典型,许多输入/目标对应的方法已被用在有监督模式中来训练神经网络。 神经网络已经在各个领域中应用,以实现各种复杂的功能。这些领域包括:模式识别、鉴定、分类、语音、翻译和控制系统。 如今神经网络能够用来解决常规计算机和人难以解决的问题。我们主要通过这个工具箱来建立示范的神经网络系统,并应用到工程、金融和其他实际项目中去。 一般普遍使用有监督训练方法,但是也能够通过无监督的训练方法或者直接设计得到其他的神经网络。无监督网络可以被应用在数据组的辨别上。一些线形网络和Hopfield网络是直接设计的。总的来说,有各种各样的设计和学习方法来增强用户的选择。 神经网络领域已经有50年的历史了,但是实际的应用却是在最近15年里,如今神经网络仍快速发展着。因此,它显然不同与控制系统和最优化系统领域,它们的术语、数学理论和设计过程都已牢固的建立和应用了好多年。我们没有把神经网络工具箱仅看作一个能正常运行的建好的处理轮廓。我们宁愿希望它能成为一个有用的工业、教育和研究工具,一个能够帮助用户找到什么能够做什么不能做的工具,一个能够帮助发展和拓宽神经网络领域的工具。因为这个领域和它的材料是如此新,这个工具箱将给我们解释处理过程,讲述怎样运用它们,并且举例说明它们的成功和失败。我们相信要成功和满意的使用这个工具箱,对范例

学习Matlab的总结与感想

海南大学本科生 2010—2011学年度第2学期 课程考查论文 学院(中心、所):信息科学技术学院专业:电子信息工程研究方向:班级: 学生姓名:学生证号: 课程名称:Matlab应用基础 论文题目:学习Matlab的总结与感想 任课老师: (以上由学生填写) 教师评阅: 阅卷教师(签名):年月日

摘要 本文从计算机语言、数学建模、网络控制系统仿真与结构化思维等方面阐述了半年来学习Matlab的心得体会与感想。由于个人知识有限,在部分细节问题的理解上可能存有偏差,还请杜老师批评指正,不吝赐教。 关键词:Matlab语言数学建模软件网络控制系统仿真结构化思维

学习Matlab 快半个学期了,虽然还有很多问题不是很清楚,但通过实践学习,我对于Matlab 总算有个整体的理解,而且每次上机操作,都会有一定的收获和感想,下面,就谈谈我个人对于Matlab 的一些看法。 (Matlab 语言) Matlab 和其它语言不一样,我这个学期学习的是C 语言,另外,对于Action Script 、HTML 、php 语言也接触过一些。C 语言主要是面向过程的,它的灵活性比较强,可根据自己的意图编辑程序,但所耗费的时间和精力比较大。例如定义变量,就分为int 、float 、char 等类型,十分麻烦,而Action Script 与php 就显得比较随意,不必纠结于哪一种类型的变量,比如,定义Var number=3,Var play=true 即可。相对于前两者而言,Matlab 则显得更为灵活与快捷,它是一门解释性语言,能自动将高级语言翻译成机器语言。比如,求t f 2=,当t=0,1,2,3,4,5时)(t f 的值。如果使用C 语言则需要定义变量,调用math 函数,还要应用for 循环、输出函数,而Matlab 则不然,只需输入t=0:5;f=2.^t ,然后回车即可。 另外,Matlab 还配有许多常用公式,操作起来十分方便,例如,想求出)(2)()(2)(3)(''''t f t f t y t y t y +=++在1)0(=y ,1)0('=y 时的零输入响应,应用dsolve 函数,只需输入x=dsolve('D2y+3*Dy+2*y=0','y(0)=1,Dy(0)=1') 回车,即得结果:x=3*exp(-t)-2*exp(-2*t)。或许,也正是Matlab 语言简洁、优化的特点,才使得它在学术界被广泛应用吧。 (数学建模) 对于数学建模而言,Matlab 是一款相当不错的建模辅助工具,因为 Matlab 中有统计函数,线性分析函数,插值函数,非线性分析函数等等这些数模必备的函数,而且,Matlab 强大的绘图功能可使很多数学演算过程变得可视化。这些对于分析问题都很有帮助。虽然我们学习的Matlab 是电子信息工程方向的,但在下个学期,,班里的大部分同学都要参加数模竞赛,所以掌握好Matlab 的各种函数模式就显得尤为重要了。

matlab遗传算法工具箱函数及实例讲解 2

matlab遗传算法工具箱函数及实例讲解 最近研究了一下遗传算法,因为要用遗传算法来求解多元非线性模型。还好用遗传算法的工具箱予以实现了,期间也遇到了许多问题。首先,我们要熟悉遗传算法的基本原理与运算流程。 基本原理:遗传算法是一种典型的启发式算法,属于非数值算法范畴。它是模拟达尔文的自然选择学说和自然界的生物进化过程的一种计算模型。它是采用简单的编码技术来表示各种复杂的结构,并通过对一组编码表示进行简单的遗传操作和优胜劣汰的自然选择来指导学习和确定搜索的方向。遗传算法的操作对象是一群二进制串(称为染色体、个体),即种群,每一个染色体都对应问题的一个解。从初始种群出发,采用基于适应度函数的选择策略在当前种群中选择个体,使用杂交和变异来产生下一代种群。如此模仿生命的进化进行不断演化,直到满足期望的终止条件。 运算流程: Step 1:对遗传算法的运行参数进行赋值。 参数包括种群规模、变量个数、交叉概率、变异概率以及遗传运算的终止进化代数。 Step 2:建立区域描述器。根据轨道交通与常规公交运营协调模型的求解变量的约束条件,设置变量的取值范围。 Step 3:在Step 2的变量取值范围内,随机产生初始群体,代入适应度函数计算其适应度值。 Step 4:执行比例选择算子进行选择操作。 Step 5:按交叉概率对交叉算子执行交叉操作。 Step 6:按变异概率执行离散变异操作。 Step 7:计算Step 6得到局部最优解中每个个体的适应值,并执行最优个体保存策略。 Step 8:判断是否满足遗传运算的终止进化代数,不满足则返回Step 4,满足则输出运算结果。 其次,运用遗传算法工具箱。 运用基于Matlab的遗传算法工具箱非常方便,遗传算法工具箱里包括了我们需要的各种函数库 。目前,基于Matlab的遗传算法工具箱也很多,比较流行的有英国设菲尔德大学开发的遗传算

MATLAB心得体会

MATLAB心得体会 这学期开了MATLAB这门课程,这里面有太多的学问。只要书里面有最基本的语法和命令,对于一个有编程基础的人,MATLAB可以在一个下午的时间内学会。当然,仅仅是学会。如果想要对MATLAB比较得心应手,那么最好的办法就是练习。练习的素材很多,比如对于学经济学的,可以做一些simulation之类的,也可以试着把计量或者宏观教材里面的一些算法写写出来。一开始可能很慢,但是当你完成了一个比较大的project的时候,你的MATLAB 的功力将会有巨大的提升。 用MATLAB的无非是做数值计算或者最优化,这也是MATLAB的强项,MATLAB有足够多的工具解决这些问题。但是在使用这些工具箱之前,应该首先了解一些数值计算以及最优化的理论。这一点在程序碰到问题或者计算结果不理想的时候尤为重要。很多时候结果不理想并不是自己的理论出了问题,而是盲目或者错误使用MATLAB的工具箱而导致的。比如我曾经做过一个单纯形法的优化程序,但是结果总是不理想,这个时候就要返回到单纯形法具体是一种什么样的来考虑这个问题,最后发现是由于目标的某一部分十分平缓导致的。 当然更重要的是如果你不理解理论,很多问题根本不知道如何处理。有个学化学同学就曾问我一个程序怎么写,说MATLAB肯定可以完成的。了解清楚之后才明白原来他想做的就是一个受限最小二乘。但是他不懂得什么是最小二乘,当然面对这个问题无从下手。 这个问题没有人强调,但我觉着蛮重要。这里的关键点其实很简单,就是尽量减少重复计算,哪怕是多项式复杂度以内的计算。重复计算的内容应该适时保存到内存中,以后直接调用。一个程序可能会重复运行几千次几万次,一点点的浪费时间都可能被放大很多。空间(内存)我们是可以扩充的,但是时间不是,所以绝大多数时候我们需要放弃空间,获得时间上的迅捷。 这里有个故事,曾经在某技术论坛上看到的,说腾讯公司早期做的QQ实在太过垃圾,他们追踪过QQ的行为,发现在几分钟时间里重复调用了某同一注册表项几百次。显然注册表的内容所占内存是有限的,甚至是可以忽略的,但是每次读注册表项可能都要读硬盘,这里的时间花费是很大的,为什么不把这项内容直接存储在内存里呢? 但是却多了三次计算时间。请问哪种好?不一定,看你的时间空间的权衡。但是具体到这个例子来说,第二种是不推荐的,因为:首先,第二种程序晦涩难懂,难以维护,内存不至于低到不能存储一个变量;第二,如果两个数字都特别特别大,计算a的时候会有溢出的危险。我想几乎所有学过的人都被这样告诫过。比较好的是MATLAB自带的编辑器本身就可以自动缩进之类的,程序十分易读。但是还有一些东西是有些人不曾注意过的。比如变量名,一个

学习matlab心得体会

1.前言 2.matlab的一些特点 3.学习matlab心得体会 4.matlab的一些资源 1.前言 我接触Matlab的时间比较长了,最开始是在大学里面的数学实验课上了解了一些,学了些基础的命令,后来参加过一次数学建模,又自学了点。而后由于所学的专业是生命科学和环境相关的东西,用到matlab的机会不多,主要是一些功能用matlab实现起来不是很方便,而且手边有现成的软件可以做到,例如图像分析,还有DNA序列分析都有现成软件等。本以为不会与其有太多交集。我下决心学习matlab是在经历几件事情之后。当时,在做硕士论文时需要对电泳图片做微生物种群的多样性分析和相似性分析,当时手头的软件只能将电泳图转化为各个泳道的灰度和位置方面的数据,而不能对数据进行分析,而能进行这样分析的软件(Bionumerics)比较贵,只为了这个用几次而买显然很不划算。无奈之下,我查了些文献,了解计算的原理后便用比较熟悉的matlab编程解决这个问题,其实这个程序比较简单--DGGE中条带Shannon多样性指数的计算,在现在看来,根本不值一提,但是在当时自我感觉还是不错的,相当有成就感了。后来在课程(数值分析,微分方程数值解)中matlab经常用到,另外在帮师姐做管理方面的数学模型时用的比较多,便自学了相关方面的知识,主要是看书,自己编程还有上网交流,这时在百度上回答了很多matlab相关的问题,并成为百度matlab技术论坛的副团长,在emuch中蒙前计算模拟区区长cenwanglai 看重,聘为计算模拟版的版主。Matlab涉及的方面非常广,下面我就自己的理解谈下matlab 一些特点和我学习matlab的一点体会,希望能对大家有点帮助,有什么不对的地方,敬请指正! 2.matlab的一些特点 A.Matlab是一个基于矩阵运算的软件,这恐怕是众所周知的事情了,但是,真正在运用的时候(就是在编程的时候),许多人(特别是初学者)往往没有注意到这个问题,因此,for 循环(包括while循环)嵌套了十几层,这不仅是暴殄天物(没有发挥matlab所长),还浪费了你宝贵的时间,就只见左下角一直busy。 B.友好的界面,易于操作,虽然matlab一打开总看到命令行窗口,其实matlab有很多

matlab小学期学习感想

小学期学习感想 大一小学期我们学习了matlab软件,这是一个十分实用和重要的软件。学习MA TLAB,感觉这是一个很好的软件,语言简便,实用性强。作为一个做新手,想要学习好这门语言,可以说还是比较难的。在我接触这门语言的这些天,一直在上面弄,除了会画几个简单的三维图形,其他的还是有待提高。在这个软件中,虽然有help。大家不要以为有了这个就万事大吉了,反而,从另一个方面也对我们大学生提出了两个要求——充实的课外基础和良好的英语基础。在现代,几乎所有好的软件都是来自国外,假如你不会外语,想学好是非常难的。 学习了MA TLAB这门课程,我了解该软件的基本功能,也知道了该软件在我们生活中的重要地位。随着社会的不断发展,科技的不断进步,计算机的普及,它也被应用在越来越多的方面。MA TLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MA TLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,MA TLAB的最突出的特点就是简洁。 MA TLAB相对于其他的一些编程软件有许多的优点:一、语言简洁紧凑,使用方便灵活,库函数极其丰富。二、运算符丰富。三、MA TLAB既具有结构化的控制语句(如for循环、while循环),又有面向对象编程的特性。四、语法限制不严格,程序设计自由度大。五、程序的可移植性很好,基本上不做修改就可以在各种型号的计算机和操作系统上运行。六、MA TLAB的图形功能强大。 用madlab创建矩阵时,方法有两种:第一、可以直接依次输入矩阵各行各列的元素,但矩阵元素必须用[ ]括住,矩阵元素必须用逗号或空格分隔,在[ ]内矩阵的行与行之间必须用分号分隔。第二、用MA TLAB函数创建矩阵。MA TLAB可以进行矩阵的加减、乘除的元素,求可逆矩阵、转置矩阵,求矩阵的特征值,求线性方程组等等。MA TLAB的功能是非常强大的,MA TLAB不仅有强大的运算功能,它还有强大的绘图功能,我对它的了解也仅仅就是一点点,或许说还没有入门。比如说它含有丰富的内建函数,例如数学函数中的三角函数、复函数、多项式函数、数据分析函数的求平均值、最大最小值、排序等,以及逻辑/选择函数如if-else等,还有用来模拟随机发生事件的随机函数。这些我都不了解。首先我们来介绍一下MA TLAB,MA Trix LABoratory,即矩阵实验室,是Math work公司推出的一套高效率的数值计算和可视化软件。它是当今科学界最具影响力、也是最具活力的软件,它起源于矩阵运算,并高速发展成计算机语言。它的优点是强大的科学运算、灵活的程序设计流程、高质量的图形可视化与界面、便捷的与其他程序和语言接口。 作为一种计算机语言,MA TLAB体现了与它价值的相符的优点: 1.编程简单使用方便。在这方面我感觉C语言也是一种简单的编程语言。只要入门就很好掌握,但是要学习一门语言不是那么容易的,到目前为止,可以说我还没入门,所以学习起这门语言来很吃力。相对C语言而言,MA TLAB的矩阵和向量操作功能是其他语言无法比拟的。在MA TLAB环境下,数组的操作与数的操作一样简单,基本数据单元是不需要指定维数的,不需要说明数据类型的矩阵,而其数学表达式和运算规则与通常的习惯相同。 2.函数库可任意扩充。由于MA TLAB语言库函数与用户文件的形式相同,用户文件可以像库函数一样随意调用,所以用户可任意扩充库函数。 3.语言简单内涵丰富。在此语言中,最重要的成分是函数,一般形式为:Function[a,b,c……]=fun(d,e,f……) Fun是自定义的函数名,只要不与库函数想重,并且符合字符串书写规则即可。 4、简便的绘图功能。MA TLAB具有二维和三维绘图功能,使用方法简单。三维曲线是由plot3 (x,y,z)命令绘出的,看上去很简单的一个程序,相对C语言而言。极大的方便了

Matlab学习心得系列——002.Matlab编程思想——向量化编程

2.Matlab 编程思想——向量化编程 C 语言的基本元素是单数值(比如单变量或数组里的元素),再加上 其结构化的特点,决定了通常 C 语言程序大都充斥着大量罗嗦的单变量循环和判断语句(注 1)。 而 Matlab 是以向量、矩阵为基本元素的,所以要编写真正的 Matlab 程序必须抛弃【 C 语言那种“单数值、元素化”考虑问题】的思路,转以向量、矩阵为最小单位来考虑问题。也就是说, Matlab 的编程思想是——向量化编程,即面向向量或矩阵。 这样做的好处,至少有两个: (1)代码大大简化,易编程、清晰可读性强; 这样的代码才叫Matlab 代码,否则只能是不伦不类的代码:C 不 C,Matlab 不 Matlab. (2)执行效率也更高; 这是次要的,随着 Matlab 对循环机制的优化,速度差异已不再 那么明显,关键是( 1)

下面针对 Matlab 中常见的向量化处理问题方法,举例加以说明:(一)整体操作“大块数据” Matlab 为同型的数据块(向量或矩阵)的整体做运算提供了【点 运算】,这里我借用《线性代数》里的说法,矩阵行数、列数相同 称为同型矩阵, Matlab 里矩阵可能不止 2 维。 比如, A.*C 和 A./C 表示 A 与 C的对应位置的各元素做* 和 /运算得到与它们同型的一个新矩阵。 例1.物理实验利用测得的电压电流具体数据,验证欧姆定律R=U/I. 代码 1(C语言风格) U = [0.89, 1.20, 3.09, 4.27, 3.62, 7.71, 8.99, 7.92, 9.70, 10.41]; I = [0.028,0.040,0.100,0.145,0.118,0.258,0.299,0.257, 0.308, 0.345]; L = length(U); S=0; for k = 1:L R(k) = U(k)/I(k); S = S + R(k); end R=S/L 运行结果: R = 30.5247

matlab数学工具箱学习

0lim sin x x x e e x -→- 代码: >> clear >> syms x >> f=(exp(x)-exp(-x))/sin(x) f =-(exp(-x) - exp(x))/sin(x) >> limit(f,x,0) ans =2 2. n n m m a x a x a x --→lim 代码: >> clear >> syms x a m n >> f=(x^m-a^m)/(x^n-a^n) f =(a^m - x^m)/(a^n - x^n) >> limit(f,x,a) ans =(a^(m - n)*m)/n

n x x x 21lim ??? ??+∞→ 代码: >> clear >> syms x >> f=exp(1/(x-1)); >> limit(f,x,-1,'left'); ans =exp(-1/2) 4. 11 1lim -+→x x e 代码: >> clear >> syms x >> f=exp(1/(x-1)); >> limit(f,x,-1,'right'); ans =exp(-1/2)

计算下列导数选了 1 2 题 1) )1ln(2x x e e y ++= 代码: >> y=log(exp(x)+(1+exp(2*x))^(1/2)); >> diff(f) ans =(exp(x) + exp(2*x)/(exp(2*x) + 1)^(1/2))/(exp(x) + (exp(2*x) + 1)^(1/2)) 2) x e y 1 sin 2-= 代码: >> y=exp(-(sin(1/x))^2); >> diff(y) ans =(2*cos(1/x)*sin(1/x)*exp(-sin(1/x)^2))/x^2 4、求曲线在t=0相应点处的切线方程和法线方程。 ???==-t t e y e x 2 切线:

matlab学习心得体会(精选3篇)

matlab学习心得体会(精选3篇) matlab学习心得体会一:matlab学习心得matlab中有丰富的图形处理能力,提供了绘制各种图形、图像数据的函数。他提供了一组绘制二维和三维曲线的函数,他们还可以对图形进行旋转、缩放等操作。matlab内部还包含丰富的数学函数和数据类型,使用方便且功能非常强大。 本学期通过对matlab的系统环境,数据的各种运算,矩阵的分析和处理,程序设计,绘图,数值计算及符号运算的学习,初步掌握了matlab的实用方法。通过理论课的讲解与实验课的操作,使我在短时间内学会使用matlab,同时,通过上机实验,对理论知识的复习巩固实践,可以自己根据例题编写设计简单的程序来实现不同的功能,绘制出比较满意的二维三维图形,在实践中找到乐趣。 matlab是一个实用性很强,操作相对容易,比较完善的工具软件,使用起来比较方便,通过操作可以很快看到结果,能够清晰的感觉到成功与失败,虽然课程中也会出现一些小问题,但是很喜欢这门课程。 matlab学习心得体会二:matlab学习心得(463字) 学习matlab是听说它是一个功能强大的数学软件,但是正被微积分的计算缠身,听说有一个高级的计算器当然高兴,以后可以偷懒了,当然现在不能偷懒。听说关于自动化的计算特别复杂,如果有一种软件能帮忙解题,那是一种极大的解脱,有益于缩短研究时间。目前我只知道有三种数学软件,都是国外的,没有国内的,差距挺大的。matlab学起来挺顺手的,比c语言简单。但是深入学习的时候却困难重重,因为很多知识都没有学习,就算知道那些函数,也没有什么用处。老师布置的作业难度大,写一篇实验,大一什么都不会,写一篇这种论文谈何容易。最多也就会一些数值计算、符号计算、简单绘图,根本不会什么实验。 学习matlab体会最多的是这个软件的功能强大,好多数学题都被轻易的解出。但是有一点遗憾,不知是我不会用,还是它没个功能,已知空间的电荷分布,求空间的电场分布。其中电场分布是无法用函数表达式表示。我知道计算机肯定可以实现,但是这个软件能不能实现就不知道了,我看过许多资料,但是在这方面没有提到相关信息。 总之,这个软件功能强大,不知什么时候国内才有类似的软件。 matlab学习心得体会三:学习matlab的心得(817字) 这是我在学习的过程中的一些技巧,或许对你有帮助,可能字数不你能满足你的要求,但是绝对是精华。

Matlab各工具箱功能简介(部分)

Toolbox工具箱序号工具箱备注一、数学、统计与优化 1 Symbolic Math Toolbox 符号数学工具箱Symbolic Math Toolbox? 提供用于求解和推演符号运算表达式以及执行可变精度算术的函数。您可以通过分析 执行微分、积分、化简、转换以及方程求解。另外,还可以利 用符号运算表达式为 MATLAB、Simulink 和Simscape? 生成代码。 ?? Symbolic Math Toolbox 包含 MuPAD 语言,并已针对符号运算 表达式的处理和执?行进行优化。该工具箱备有MuPAD 函数库, 其中包括普通数学领域的微积分和线性代数,以及专业领域的 数论和组合论。此外,还可以使用 MuPAD 语言编写自定义的符 号函数和符号库。MuPAD 记事本支持使用嵌入式文本、图形和 数学排版格式来记录符号运算推导。您可以采用HTML 或PDF 的格式分享带注释的推导。 2 Partial Differential Euqation Toolbox 偏微分方程工具箱偏微分方程工具箱?提供了用于在2D,3D求解偏微分方程(PDE)以及一次 使用有限元分析。它可以让你指定和网格二维和三维几何形状 和制定边界条件和公式。你能解决静态,时域,频域和特征值 问题在几何领域。功能进行后处理和绘图效果使您能够直观地 探索解决方案。你可以用偏微分方程工具箱,以解决从标准问 题,如扩散,传热学,结构力学,静电,静磁学,和AC电源电 磁学,以及自定义,偏微分方程的耦合系统偏微分方程。 3 Statistics Toolbox 统计学工具箱 Statistics and

MATLAB心得体会

M A T L A B心得体会 标准化文件发布号:(9312-EUATWW-MWUB-WUNN-INNUL-DQQTY-

MATLAB心得体会 这学期开了MATLAB这门课程,这里面有太多的学问。只要书里面有最基本的语法和命令,对于一个有编程基础的人,MATLAB可以在一个下午的时间内学会。当然,仅仅是学会。如果想要对MATLAB比较得心应手,那么最好的办法就是练习。练习的素材很多,比如对于学经济学的,可以做一些simulation之类的,也可以试着把计量或者宏观教材里面的一些算法写写出来。一开始可能很慢,但是当你完成了一个比较大的project的时候,你的MATLAB的功力将会有巨大的提升。 用MATLAB的无非是做数值计算或者最优化,这也是MATLAB的强项,MATLAB有足够多的工具解决这些问题。但是在使用这些工具箱之前,应该首先了解一些数值计算以及最优化的理论。这一点在程序碰到问题或者计算结果不理想的时候尤为重要。很多时候结果不理想并不是自己的理论出了问题,而是盲目或者错误使用MATLAB的工具箱而导致的。比如我曾经做过一个单纯形法的优化程序,但是结果总是不理想,这个时候就要返回到单纯形法具体是一种什么样的来考虑这个问题,最后发现是由于目标的某一部分十分平缓导致的。 当然更重要的是如果你不理解理论,很多问题根本不知道如何处理。有个学化学同学就曾问我一个程序怎么写,说MATLAB肯定可以完成的。了解清楚之后才明白原来他想做的就是一个受限最小二乘。但是他不懂得什么是最小二乘,当然面对这个问题无从下手。 这个问题没有人强调,但我觉着蛮重要。这里的关键点其实很简单,就是尽量减少重复计算,哪怕是多项式复杂度以内的计算。重复计算的内容应该适时保存到内存中,以后直接调用。一个程序可能会重复运行几千次几万次,一点点的浪费时间都可能被放大很多。空间(内存)我们是可以扩充的,但是时间不是,所以绝大多数时候我们需要放弃空间,获得时间上的迅捷。 这里有个故事,曾经在某技术论坛上看到的,说腾讯公司早期做的QQ实在太过垃圾,他们追踪过QQ的行为,发现在几分钟时间里重复调用了某同一注册表项几百次。显然注册表的内容所占内存是有限的,甚至是可以忽略的,但是每次读注册表项可能都要读硬盘,这里的时间花费是很大的,为什么不把这项内容直接存储在内存里呢?

Matlab符号工具箱学习

《MATLAB 6.1》实用指南(上册) 苏金明等编著 第3章符号运算 MATLAB的强大之处不仅在于其强大的数值运算功能,而且也在于其强大的符号运算功能。MATLAB的符号运算是通过集成在MATLAB中的符号数学工具箱(Symbolic MathToolbox)来实现的。MATLAB的符号数学工具箱用途广泛,它可用于数学、物理、力学等各种学科的科研、工程应用中。 而且,它使用字符串来进行符号分析与运算,而不是基于矩阵的数值分析与运算。实际上,MATLAB中 的符号数学工具箱是建立在功能强大的由加拿大滑铁卢大学开发的Maple软件的基础上。当进行MATLAB 符号运算时,它就请求Maple软件去计算并将结果返回给MATLAB。 MATLAB的符号数学工具箱可完成几乎所有的符号运算功能。 这些功能主要包括:符号表达式的运算,符号表达式的复合、化简,符号矩阵的运算,符号微积分、 符号函数画图,符号代数方程求解,符号微分方程求解等。此外,工具箱还支持可变精度运算, 即支持符号运算并以指定的精度返回结果。 3.1 符号表达式的生成 在MATLAB符号工具箱中,符号表达式是代表数字、函数和变量的MATLAB字符串或字符串数组, 它不要求变量要有预先确定的值。符号表达式包括符号函数与符号方程。其中,符号函数没有等号, 而符号方程必须要带有等号。MATLAB在内部把符号表达式表示成字符串,以与数字相区别。 符号表达式的创建可通过以下几种方法: 1.用单引号来生成符号表达式 在MATLAB中,所有的字符串都用单引号来设定输入或输出。为此符号表达式也可用中引号来生成。例如, [例1] >> f='exp(x)' f= exp(x) [例2] >> f='a*x^2+b*x+c=0' f=

matlab心得及学习方法(不断更新)

竭诚为您提供优质文档/双击可除matlab心得及学习方法(不断更新) 篇一:matlab心得及学习方法 matlab心得及学习方法(不断更新) 发现现在很多人(找工作的或者读博的)都想要学习或者正在学习matlab,问我要怎么学习。其实我虽然写matlab 代码的经验还算丰富,但是还不能说是一个很好的matlab 编程人员,这里有一些心得,分享给大家希望对大家有所帮助。 关于如何学习matlab 我的学习方法很简单:matlab是练出来的,而不是看出来的。很多人问我有没有比较好的matlab教材,我说随便 找一本吧,都可以。只要书里面有最基本的语法和命令,对于一个有编程基础的人,matlab可以在一个下午的时间内学会。当然,仅仅是学会。如果想要对matlab比较得心应手,那么最好的办法就是练习。练习的素材很多,比如对于学经济学的,可以做一些simulation之类的,也可以试着把计 量或者宏观教材里面的一些算法写写出来。一开始可能很慢,

但是当你完成了一个比较大的project的时候,你的matlab 的功力将会有巨大的提升。 当然,在你写程序之前,多读一些别人写的好的code 是非常有帮助的。 一些matlab的经验 1、适当了解一些数值计算、数值分析以及最优化的理论 用matlab的无非是做数值计算或者最优化,这也是matlab的强项,matlab有足够多的工具箱解决这些问题。但是在使用这些工具箱之前,应该首先了解一些数值计算以及最优化的理论。这一点在程序碰到问题或者计算结果不理想的时候尤为重要。很多时候结果不理想并不是自己的理论出了问题,而是盲目或者错误使用matlab的工具箱而导致的。比如我曾经做过一个单纯形法的优化程序,但是结果总是不理想,这个时候就要返回到单纯形法具体是一种什么样的算法来考虑这个问题,最后发现是由于目标函数的某一部分十分平缓导致的。当然更重要的是如果你不理解理论,很多问题根本不知道如何处理。有个学化学同学就曾问我一个程序怎么写,说matlab肯定可以完成的。了解清楚之后才明白原来他想做的就是一个受限最小二乘。但是他不懂得什么是最小二乘(因为没怎么学过数学),当然面对这个问题无从下手。

matlab心得体会

m a t l a b心得体会-标准化文件发布号:(9556-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII

心得体会 虽然说本次matlab实训只有短短的一个礼拜,但在老师的耐心教导以及自身的努力下,还是获益匪浅。本次matlab 实训是以信号与系统知识为实例来编写程序的,由于信号与系统正是本学期的课程,所以在理论知识上也比较容易理解,在加上老师耐心讲解,使我们的信号与系统知识也得到了巩固,可谓是一举两得。 在大一学年时,虽然已学过一学期的matlab知识,但是由于时间隔得有点久了,所以很多知识也有所遗忘了,通过本次实训,我们又重新学习巩固了所学知识,在很多matlab的应用上也有了新的体验。比如如何运用符号运算、向量表示法和计算卷积、系统的各种响应等。 Matlab这门课也算是门技术活,要想学好这门课就必须多练习,正所谓熟能生巧,练习多了就熟练了,也就能掌握好并且更好的运用这门课了,我们以前所学的知识之所以能遗忘得这么快,完全是因为我们掌握得不牢固。Matlab 是一门很实用的课程,不管是信号与系统还是将来要学的数字信号处理等多门课都可以用matlab来实现,所以掌握好matlab为我们以后的学习和工作打下基础。 通过matlab的实训,同时也是对我们细心和耐心的锻炼。Matlab的编程需要很细心,一个标点符号的错误或者字符的大小写都将导致程序报错,所以这就有利于培养我

们的细心。Matlab编程需要长时间的坐在电脑前工作,这就有利于培养我们的耐心,一旦坐在电脑前开始工作,常常会有一种时间过得特别的快的感觉。总之,本次matlab 专题训练让我收获很多。

学习Matlab的总结与感想

学习M a t l a b的总结与感 想 The Standardization Office was revised on the afternoon of December 13, 2020

海南大学本科生 2010—2011学年度第2学期 课程考查论文 学院(中心、所):信息科学技术学院专业:电子信息工程研究方向:班级: 学生姓名:学生证号: 课程名称:Matlab应用基础 论文题目:学习Matlab的总结与感想 任课老师: (以上由学生填写) 教师评阅:

阅卷教师(签名):年月日 摘要 本文从计算机语言、数学建模、网络控制系统仿真与结构化思维等方面阐述了半年来学习Matlab的心得体会与感想。由于个人知识有限,在部分细节问题的理解上可能存有偏差,还请杜老师批评指正,不吝赐教。 关键词:Matlab语言数学建模软件网络控制系统仿真结构化思维

学习Matlab 快半个学期了,虽然还有很多问题不是很清楚,但通过实践学习,我对于Matlab 总算有个整体的理解,而且每次上机操作,都会有一定的收获和感想,下面,就谈谈我个人对于Matlab 的一些看法。 (Matlab 语言) Matlab 和其它语言不一样,我这个学期学习的是C 语言,另外,对于Action Script 、HTML 、php 语言也接触过一些。C 语言主要是面向过程的,它的灵活性比较强,可根据自己的意图编辑程序,但所耗费的时间和精力比较大。例如定义变量,就分为int 、float 、char 等类型,十分麻烦,而Action Script 与php 就显得比较随意,不必纠结于哪一种类型的变量,比如,定义Var number=3,Var play=true 即可。相对于前两者而言,Matlab 则显得更为灵活与快捷,它是一门解释性语言,能自动将高级语言翻译成机器语言。比如,求t f 2=,当t=0,1,2,3,4,5时)(t f 的值。如果使用C 语言则需要定义变量,调用math 函数,还要应用for 循环、输出函数,而Matlab 则不然,只需输入t=0:5;f=2.^t ,然后回车即可。 另外,Matlab 还配有许多常用公式,操作起来十分方便,例如,想求出)(2)()(2)(3)(''''t f t f t y t y t y +=++在1)0(=y ,1)0('=y 时的零输入响应,应用dsolve 函数,只需输入x=dsolve('D2y+3*Dy+2*y=0','y(0)=1,Dy(0)=1') 回车,即得结果:x=3*exp(-t)-2*exp(-2*t)。或许,也正是Matlab 语言简洁、优化的特点,才使得它在学术界被广泛应用吧。

matlab学习心得体会

最近在学习matlab,一直不入其法门。从网上看到了一些大虾的经验心得,感触颇深,转贴过来,希望给初学者有一定的指引。 一)写给学习 matlab 的新手们作者:eight (八) 来源振动论坛 本人接触matlab已经有5年多的时间了,一直想写点东西,但是之前不知道放在哪里才能发挥它的最大作用,直到几天前碰上了这个论坛(有点像诸葛亮遇见姜维,哈哈)。 废话不说,我想借贵论坛宝地,写一些经验给使用matlab的新手们,当然了,老大们也可以看看,不嫌弃我写得粗糙的话还可以指点一下,先谢过了~~~~ 首先我想说的是,matlab跟其他语言不一样(我用的比较多的编程语言,除了matlab就应该是c或c++了,VB和Delphi也接触过,我想版面(matlab版)大部分人也差不多),如果你抱着“把其他语言的思想运用在matlab里面”的话,那么我想,即使程序运行不出错,也很难把握matlab的精髓,也就很难发挥matlab的作用了。所以,如果你是希望matlab作为VC的附属品,即你不想在matlab上面花太多功夫,只纯粹想用matlab来完成VC做不了或很难做成的任务的话,那么,这篇文章你也不需要再阅读下去了;如果你是希望掌握一门语言、一个工具,使它更有效为你服务的话,那么,希望本文对你有所帮助。 Matlab是一个基于矩阵运算的软件,这恐怕是众所周知的事情了,但是,真正在运用的时候(就是在编程的时候),许多人(特别是初学者)往往没有注意到这个问题,因此,for循环(包括while循环)满天飞…………..这不仅是暴殄天物(没有发挥matlab所长),还浪费了你宝贵的时间。对此,版友MVH 在他的“MATLAB 小技巧”一文中也有所涉及,雷同的东西我也就不重复了,matlab的“帮助”里面也有相关的指示。我这里想说的一点是,初学者往往在初始化矩阵的时候注意到这个问题,懂得了使用矩阵而不是循环来赋值,但是,在其他环节上,就很容易疏忽,或者说,仍然没有摆脱C++的思想。举个例子吧,下面的代码是我的一个师弟写的,我想他接触matlab也有2、3年时间了(在此说明一下,接触2、3年并不是表示每天都会跟matlab打交道,我本人也不是,只是在一年某几个时间段里面连续使用),但是仍然会出现类似的问题: J = 0; lt = size(imf1,2); for (i = 1:lt) if (abs(imf1(i)) > 1) J = 1; break end end

相关主题
文本预览
相关文档 最新文档