MATLAB总结
MATLAB总结
这是我第一次接触MATLAB,说真的刚开始我真的一点也不懂老师说的是什么,可是当我听了很多学长说这门课对我们这个专业非常重要的时候,我才开始意识到我不能就此罢休,应该好好的学,自此我上课之前都把书先看一遍,老师上课的时候我很认真的听讲,现在虽然还有很多的知识我还是不太清楚,但是我认真的学过,我想再复习也就不太那么难了,现在就我对MATLAB这门课的认识做一下简单的总结。
第一章主要介绍了MATLAB的桌面环境,以及介绍这个软件的基本功能,使大家初步了解它的用途,同时也介绍了工作空间浏览器、数组编辑器、M文件性能剖析器等。第二章的学习是重点,主要讲的是矩阵和数组,首先,数组是有序数据的集合,在大多数的每一个元素都属于同一种数据类型,它们使用同一个数组名称和不同的下标来唯一确定数组中的成员,其中,下标是指数组中的序号。求矩阵最值函数:
C=max(A),当A是矩阵时,返回各列最大值;当A是向量(行或列)时返回向量的最大值。C=max(A,B),A与B大小一样,返回相应位置的最大值。C=max(A,[],1),返回第一维(各列)最大值。C=max(A,[],2),返回第二维(各行)最大值。
[C,I]=max(...),返回最大值,以及该最大值的位置。注:min函数用法与max函数类似。矩阵除法:X=A\\B;AX=BX=A/B;XA=B矩阵操作函数矩阵转置:’
矩阵求行列式:det矩阵求逆:inv
矩阵特征值求取:eig
矩阵特征多项式系数求取:ploy矩阵对角元向量提取:diag字符转换(输出)函数:
sprintf("A(%d,%d)=%.1e\\n",m,n,A(m,n)),字符串转换;
fprintf("A(%d,%d)=%.1e\\n",m,n,A(m,n)),字符串输出至显示屏;%d等表示输出数值的格式,具体用法见help文件。矩阵求和函数:
C=sum(A),当A是矩阵时,返回各列之和;当A是向量(行或列)时,返回所有元素之和。C=sum(A,1),按列求最大值,返回一个行向量。C=sum(A,2),按行求最大值,返回一个列向量。求余函数:
rem(X,Y),求X/Y的余数,返回X-n.*Y,n=fix(X./Y)(朝0方向取整),符号与X的符号一致,当Y=0时,返回NaN,该函数的返回值就是通常的求余数的结果。
第三章主要上的是数据类型,众所周知,MATLAB是一个功能强大的数学软件,擅长于用矩阵运算完成各种数学功能。但是其程序需要在MATLAB环境下解释执行,效率不高。如果能将它强大的函数库用于C语言,利用C来编译执行,MATLAB将能发挥更大的作用。所以,MATLAB从5.0开始已经提供了与外部C/C++程序的应用程序接口,为利用C语言调用MATLAB的函数提供了可能。但是MATLAB的接口发展很快,到MATLAB6.5已经提供了对VC7.0的支持,同时对C的接口相对于5.X版本有了一定的改变,在MATLAB当中,我们利用M文件来实现函数,每一个M文件实现一个单独的功能,这一点和C语言当中的函数是相互对应的。所以,如果我们能将MATLAB中的M文件转化为C语言下的一个单个函数,就能实现MATLAB中相应的功能,整个过程可分为三个主要部分,用MATLAB将M文件翻译为C语言文件,从生成的C语言文件提取出有用语句,编写数据转换程序实现参数格式转换。整个过程最终将把M文件翻译成C语言当中的一个具有相同功能的函数,供其它的程序调用。接下来几章主要介绍了MATLAB的编程基础,这里引入了M文件的使用,M语言的语法与C语言非常类似,M语言函数文件能够接受用户的输入参数,并进行计算,然后将计算的结果作为函数的返回值返回给调用者。在MATLAB中具有不同类型的函数,分别为内建函数、系统M函数、系统MEX函数文件、用户自定义MEX函数文件和用户自定义的M文件,其中内建函数是MATLAB基本内核提供的函数。下面是学习这门课常用到的知识点:
demo-运行MATLAB提供的展示文件;clear-清除workspace中所有的变量;clc-清除命令窗口中的所有内容;size-计算变量的维数;length-计算变量的长度;
^C-停止运行当前程序;quit/exit-结束或离开MATLAB;系统预定义变量:eps(浮点运算误差限),pi,Inf(无限),NaN(notanumber),i,j,ans(默认变量)who(查找变量列表),whos(查看当前内存中的变量);save-将所有变量存入文件matlab.matsavemydat/savemydat.mat-将所有变量存入mydata.matsave文件名变量名列表,续行符:“”,Matlab区分大小写,它的命令和函数全是小写的,浮点运算的相对精度为eps,Matlab中eps2.22e-016,即大约保持16位有效数字。Matlab中的虚部单位:i,j,n=input("Pleaseinputn:")zeros(m,n)ones(m,n)eye(m,n)diag(X)tril(A)triu(A)rand(m,n)生成一个m行n列的零矩阵,m=n时可简写为zeros(n)生成一个m行n列的元素全为1的矩阵,m=n时可写为ones(n)生成一个主对角线全为1的m行n列矩阵,m=n时可简写为eye(n),即为n维单位矩阵若X是矩阵,则diag(X)为X的主对角线向量若X是向量,diag(X)产生以X为主对角线的对角矩阵提取一个矩阵的下三角部分提取一个矩阵的上三角部分产生0~1之间均匀分布的随机矩阵m=n时简写为rand(n)经过几周的学习,虽然说时间不是太长但是使我初步了解了MATLAB的基本知识,并且深深的意识到这门课的重要性,相信在今后的学习中这门课对我们的专业的影响将会是不容忽视的,我知道书上得来终觉浅,要知此事须躬行的道理,既然意识到了重要性,我想我会认真的对待的。
扩展阅读:matlab心得
学习Matlab心得体会
学习Matlab已经有一段时间了,对Matlab编程有了一定的了解。下面谈谈自己近期的学习心得。
第一节的时候我们对Matlab有了初步的认识:Matlab是“矩阵实验室(matrixlaboratoy)”的缩写,它是一种与数学水平密切相关的算法语言,专门针对科学、工程计算及绘图的需求。Matlab的应用范围非常广,包括信号和图像处理、通讯、控制系统设计、测试和处理、财务建模和分析以及计算机生物学等众多应用领域。附加的工具箱扩展了Matlab环境,以解决这些领域的特定性问题。比如说在自动控制理论中用的比较多的是根轨迹,相平面,传递函数,拉普拉斯变换,乃氏曲线等。在电机控制里面还有很多仿真实验,也经常用,对于辅助分析,也是很好用的。
我们已经学习过C语言,不难发现Matlab的编程基本语法学习起来很快的,和C语言很类似,而且支持C语言函数的,或者说函数就是用C语言编的。大一时学习线性代数,对矩阵又有了一定的了解,为今天学习Matlab打下了一定的基础。从matlab的名字的来源可以看出,它以矩阵运算常见,在当今的科学计算中,几乎无处不用矩阵运算,这是它的优势得到了充分的体现。
随着学习的课时的增加,我们对Matlab的有了深入而实质性的了解。首先我们学习了Matlab的数学运算、程序设计、程序调试、Matlab绘图及图形句柄,最后我们又学习了Matlab的图形用户界面设计。经过几次实验课,我们学会了M文件编程及程序调试,学会利用help这一命令对程序进行解释。
Matlab是以解释方式工作的,即它对每条语句解释后立即执行,若有错误也立即做出反应,便于对程序进行修改,大大减轻了编程和调试的工作量。它灵活、方便,程序调试手段丰富,调试速度快。Matlab语言像Basic和C语言一样规定了矩阵的算算术运算符、关系运算符、逻辑运算符、条件运算符及赋值运算符等。Matlab的绘图功是十分方便的,在调用绘图函数时调整自变量可绘制出不同颜色的点、线、复线或多重线,这是通用的编程语言所不及的。Matlab的工作环境主要由命令窗口、图形窗口、和文本编辑窗口组成。
当然,matlab与其它计算机语言相比,有其独特的优点。特点如下:Matlab把编辑、编译、连接以及执行融为一体,加快了编写、修改、和调试程序的速度,或者说是一种比VB还要简单的语言。Matlab语言的内容极为丰富,它的各种函数都与数学领域有关,它的起点高,编程效率高,用户使用方便,智能化程度高,人机交互性好,功能丰富,可扩展性强。
通过这段时间的理论学习及实验,我觉得要提高matlab编程能力的方法有以下几点:(1)利用help,lookfor等功能对程序进行编译修改。(2)多上网查资料,上论坛,搜索帖子、发帖子问人(3)阅读别人、特别是一些高级技术人员的程序,在阅读的过程中进行学习,学习别人的编程方法。(4)还要有一本matlab的函数工具词典,可以尽量多的熟悉matlab自带的函数,因为matlab自带的函数特别多,基本上能够满足一般的数据和矩阵的计算。当然了,正如所有的程序语言一样,“3分课本7分上机”,一定要动手才行,不能光看。多想、多思考、多尝试,才是正路。
记得上第一节课时,老师给我们放得ppt上有这样一句话:学会Matlab将改变你的一生,网络对你的改变将远远的超过一台独立的计算机!作为一名电气工程及其自动化的一名学生,学好Matlab是非常有用的,扩展就业方向,为将来就业打下良好的基础!
最后,感谢老师您这么久以来对我们的谆谆教导!我们不会忘记您对我们的细心辅导,不会忘记您在我们瞌睡的时候给我们的讲的故事
友情提示:本文中关于《MATLAB总结》给出的范例仅供您参考拓展思维使用,MATLAB总结:该篇文章建议您自主创作。
来源:网络整理 免责声明:本文仅限学习分享,如产生版权问题,请联系我们及时删除。