MATLAB 心得

时间:2024.4.30

Chapter 1 概述

1.1 简介

MATLAB是“矩阵实验室(Matrix Laboratory)”的缩写,它是一种以矩阵运算为基础的交互式程序语言,是专门针对科学与工程中计算和绘图的需求而开发的。

1.2 特点

MATLAB是以解释方式工作的,即它对每条语句解释后立即执行,若有错误也立即作出反应,便于编程者马上改正。

1.3 界面

1.菜单栏

菜单栏包括7个菜单项。其中,File用于相关文件的处理,Edit实现命令窗口的编辑操作,Debug用来调试程序,Parallel用来进行配置管理和并行计算设置,Desktop用来是指窗口的实现方式,Window用来关闭所有使用的编辑器窗口或选择活动窗口,Help用来选择打开不同的帮助系统。

2.Command Window(命令窗口)

键盘上的ESC可恢复命令输入的空白状态;方向键中的上箭头可调出上一行的历史命令。 想查某函数的帮助时,如linespace函数,键入doc linespace即可。

3.Workspace(工作空间)

储存着当前窗口中所有变量的名称、类型、字节数等内容。

4.Command history(历史命令)

5.Current folder(当前文件夹)

修改默认目录的方法:对桌面上的MATLAB快捷方式右键选“属性”,将起始位置改为“C:\Users\冯亚飞\Documents\MATLAB”即可。

6.Details

如果Editor中有“%% 通信程序”这样的题头时,它会在Details窗口内显示出来。

7.Editor(文本编辑窗口)

可在Command Window中直接键入edit来新建一个Editor。

快捷键:ctrl+R,选中行加上注释符“%”;ctrl+T,去掉注释符;ctrl+回车,运行区域内的程序(所谓区域指的是用两个注释符“%%”分隔开的区域);

8.Figure(图形窗口)

1.4 退出方法

键入exit,另一种是直接单击右上角的×号,后者是非正常退出,该过程中所有的输入

命令将不记录在Command history窗口中,所以应当尽量避免使用。

Chapter 2 基本语法

2.1 变量及其赋值

2.1.1 矩阵及其元素的赋值

MATLAB内部只有一种数据格式,那就是双精度(即64位)二进制,对应于十进制16位有效数和±308次幂。

MATLAB中的变量或常量都代表矩阵,标量应看做1×1的矩阵。

矩阵的值放在方括号中,同一行中各元素之间以逗号或空格分开,不同行则以分号隔开,语句的结尾可用“回车”或逗号,此时会立即显示运算结果。如果不希望显示结果,就以分号结尾。

变量的元素用圆括号中的数字(也称为下标)来注明,一维矩阵(也称数组或向量)中的元素用一个下标表示;二维矩阵可有两个下标数,以逗号分开。如果赋值元素的下标超出原来矩阵的大小,矩阵的行列会自动扩展,并且跳空的元素被自动地赋值0.这种自动扩展维数的功能只适用于赋值语句。在其他语句中若出现超维调用的情况,MATLAB将给出出错提示。

给全行赋值可用冒号“:”。

若想抽去矩阵的某一行或列,可以利用空矩阵[ ]的概念。比如:A([2 4 5]),:)=[ ],表示抽去矩阵A的2、4、5行。

2.1.2 复数

MATLAB中的每一个元素都可以是复数,实数是复数的特例。

运算符“’”表示把矩阵作共轭转置,即把它的行列互换,同时把各元素的虚部反号。函数conj则只把各元素的虚部反号,即只取共轭。所以若想求转置而不要共轭,就要用conj和“’”结合起来完成。

2.1.3 基本矩阵和函数

(1)zeros(m,n),ones(m,n),rand(m,n)随机数矩阵,randn(m,n)正态随机数矩阵,eye(n)单位矩阵(方阵)。

(2)linespace(a,b,n)。均分向量,在a与b之间均分地产生n个点值,形成1×n元向量。

(3)size(y)是求多维矩阵y的各维长度,一般有两个输出量。length(x)是返回一维矩阵x的长度,只有一个输出量。length不区分列或行。

(4)magic(n)。魔方矩阵的特点是其元素由1到n×n的自然数组成;每行每列及两对角线上的元素之和均等于(n3+n)/2。

(5)eye(n)。单位矩阵是n×n元的方阵,其对角线上的元素为1,其余元素均为0。(对角线指的是从左上角到右下角)

2.2 矩阵的初等运算

如果想针对矩阵中对应位置的元素进行运算时,一定要用点乘、点除或点幂。

2.2.1矩阵的乘法

m×p阶矩阵A与p×n阶矩阵B的乘积C是一个m×n阶矩阵,它的任何一个元素 C(i, j)的值为A阵的第i行和B阵的第j列对应元素乘积的和。对于标量A,B,因为n,p,m均为1,矩阵乘法就退化为普通数的乘法。

注意矩阵乘法的左乘和右乘的结果一般不同,只有单位矩阵例外。如eye(m)*A=A*eye(m)=A。

2.2.2矩阵的除法

矩阵除法是MATLAB从逆矩阵的概念引申来的。先介绍逆矩阵的定义,对于任意n×n阶方阵A,如果能找到一个同阶的方阵V,使

A*V=I

其中,I为n阶的单位矩阵eye(n),则V就是A的逆矩阵,用数学符号表示为V=A-1。

逆矩阵V存在的条件是A的行列式det(A)不等于0。在MATLAB中可用函数inv求逆矩阵,键入V=inv(A),就可得到A的逆矩阵V。

现在来看方程D*X=B,设X为未知矩阵,等式两端同时左乘以inv(D),即

Inv(D)*D*X=inv(D)*B

因为等式左端inv(D)*D=I,而I*X=X,所以上式成为

X=inv(D)*B=D\B

把D的逆矩阵左乘以B,MATLAB就记作D\,称之为“左除”。从D*X=B的阶数检验可知,B与D的行数相等。因此,左除时的阶数检验条件是:两矩阵的行数必须相等。

如果原始方程的未知数向量在左而系数矩阵在右,即X*D=B,

则按上述同样的方法可以写出

X=B*inv(D)=B/D

把D的逆矩阵右乘以B,MATLAB就记作/D,称之为“右除”。同理,右除时的阶数检验条件是:两矩阵的列数必须相等。

矩阵除法可以用来方便地解线性方程组。但是当方程数少于未知数个数时,仍然可用除法符号求出解,但它只是一个特殊解。

2.3 元素群运算

元素群运算指的是矩阵中所有元素按照单个元素进行运算。为了与矩阵作为整体的运算符号相区别,要在运算符“*、/、\、^”前加一点符号“.”,以表示进行的是元素群运算。

2.3.1 数组及其赋值

MATLAB提供了两种为等间隔数组赋值的简易方法。

(1)t=[初值:增量:终值]。如t=[0:0.02:1]

增量可为负值;当增量为1时,可略去增量值。

(2)用linespace函数,具体参见2.1.3。

有时要求自变量按等比级数赋值,在设频率轴时往往如此,可用logspace函数。如键入 W=logspace(0,1,11)。它的意义是将10的0至1次幂之间按幂等分(即数是等比的)为11个点。

2.3.2元素群函数

下表是初等数学函数库中的常用函数,均可用于元素群运算,即其自变量都可以是任意阶的矩阵。

初等数学函数库(elfun)

MATLAB心得

MATLAB心得

MATLAB心得

MATLAB心得

MATLAB心得

2.4 逻辑判断及流程控制

2.4.1 关系运算

所谓关系运算,是指两元素之间数值的比较,它是对矩阵的各个元素进行元素群运算,一共有六种可能,具体如下:

关系运算的结果只有两种可能,即0(假)或1(真)。 同样用于元素群,可得出同阶的0—1矩阵。逻辑量只能取0(假)和1(真)两个值。为了(不全为假)。 2.4.3流程控制语句 (1)if语句 (2)while语句 (3)for语句 其结构形式为 for k=初值:增量:终值语句组A, end (4)switch语句

另外break是终止循环的命令,在循环语句中,可用它在一定条件下跳出循环。在多重循环中,break只能使程序跳出包含它的最内部的那个循环。

2.5 基本绘图方法

2.5.1 x-y直角坐标中的二维曲线——plot命令

(1)plot(y)——输入一个数组的情况

以y中元素的下标作为x坐标,y中元素的值作为y坐标,一一对应画在x-y坐标平面图上,

MATLAB心得

(2)plot(x,y)——输入两个数组的情况

2.5.2线型、点型和颜色

为了设定线型,在输入变量组的后面加一个引号,在引号内部放入线型和颜色的标志符,如 plot(x,y,’*b’,x1,y1,’:r’)。

具体可以键入doc linespec查询。

2.5.3 多条曲线的绘制

(1)plot(t,[y1,y2,…]) 其中t是向量,y=[y1,y2…]是矩阵。

(2)用hold命令

在画完一张图后用命令“hold on”保持住,再画下一条曲线。注意及时解除保持状态,即键入“hold off”,否则,以后的图都会叠加在此图上,造成混乱。

MATLAB心得

(3)plot(x,y,’*b’,x1,y1,’:r’)

(4)plotyy(t1,y1,t2,y2)

plotyy设有两个纵坐标,以便绘制两个y尺度不同的变量,但x轴仍只能用一个比例尺。左纵坐标是对y1的,右纵坐标是对y3的。曲线的标注用gtext命令。

2.5.4 其他二维绘图命令

(1)subplot(n,m,p)命令:将图形窗口分成n×m个子图,在第p个子图处绘制图形。 (2)其他坐标系

①polar(theta,rho)命令:极坐标绘图,以角度theta为一个坐标,单位是弧度,另外一个坐标是矢径rho。

②loglog绘出纵、横坐标刻度均为log10的对数图。

③semilogx使用半对数刻度绘图,x轴为log10刻度,y轴为线性刻度。

④semilogy使用半对数刻度绘图,y轴为log10刻度,x轴为线性刻度。

(3)复数的绘图

当plot(z)中的z为复数单变量时(即含有非零的虚部),MATLAB把复数的实部作为x坐标,虚部作为y坐标进行绘图,即相当于plot(real(z),imag(z))。如果是双变量如plot(t,z),则z中的虚数部分将被丢弃。要在复平面内绘出多条图线,必须用hold命令,或把多根曲线的实部和虚部明确地写出,作为plot函数的输入变元,即

plot(real(z),imag(z),real(z2),imag(z2))。

(4)坐标比例和尺寸的设定——axis命令

v=axis,返回当前图形边界的四元行向量,即v=[xmin,xmax,ymin,ymax]。

axis(v)(其中v是一个四元向量),将坐标轴设定在v规定的范围内。

axis的另外一个功能是控制图形的纵横比。axis(‘square’)或axis(‘equal’)使屏幕上x与y的比例尺相同,在这种方式下,斜率为1的直线的倾斜角为45°。

(5)图形窗口中的直接编辑

指的就是图形窗口顶部的菜单和按钮。可以自行摸索试验以掌握他们的功能和用法,深入一些的问题需参阅手册“Using MATLAB Graphics”。

(6)set命令,具体可在命令窗口键入”doc plot”查询。程序示例如下

plot(x,y);

set(gca,'XTick',-2*pi:pi/2:2*pi);

set(gca,'XTickLabel',{'-2pi','-3pi/2','-pi','-pi/2','0','pi/2','pi','3pi/2','2pi'});

axis([-2*pi,2*pi,-1,1]);

gridon;

2.5.5 三维曲线和曲面

具体用法待定。

2.5.6 动画

具体待定。示例程序:

MATLAB心得

2.6M文件及程序调试

M文件可分为两种:一种是主程序,也称为主程序文件(Script File),是由用户为解决特定的问题而编制的;另一种是子程序,也称为函数文件(Function File),它必须由其他M文件来调用,函数文件可以进行递归调用(即自己调用自己)。

2.6.1 主程序文件

其格式特征如下:

(1)用clear,close all,clc等语句开始,以避免其他已执行过的程序残留数据对本程序的影响。

前几行通常是对程序用途的说明,利用注释符“%”来注释,特别是在运行时对用户输入数据的要求,更要叙述清楚,不然别人看不懂也用不成,连自己日后也会遗忘。

(2)以下是程序的主体。如果文件中有全局变量,即在子程序中与主程序共用的变量,应在程序的起始部分注明,语句是 Global 变量名 1 变量名 2…

键入程序时最好从头到尾用英文,不要插入汉字。汉字可在程序调试完毕后加入。注意在菜单项【Text】下,选【Smart Indent】项可以自动对程序进行缩进排版。

(3)文件名不允许用汉字。

2.6.2 人机交互命令

(1)pause(n)命令:程序执行到此处暂停n秒,再继续执行。如果没有括号参数,则等待用户键入任意键后才继续执行。

(2)input(‘提示文字’):程序执行到此处暂停,在屏幕上显示引号中的提示字符串,要求用户输入数据。如程序为x=input(‘x=’),则屏幕上显示“x=”,输入的数据将赋值给x。数据输入后程序继续执行。imput命令也可以接受字符,其格式为y=input(‘提示文字’,’s’),此时y将等于输入的字符串。

(3)ctrl+C键:强行停止程序运行的命令。在发现程序运行有错或运行时间太长时,可用此方法中途终止它。

2.6.3 函数文件

函数文件是用来定义子程序的。它与程序文件的主要区别有三点:

①由function起头,后跟的函数名必须与文件名相同;

②有输入输出变量,可进行变量传递;

③除非用global声明,程序中的变量均为局部变量,运行后不保存在workspace中。

MATLAB心得

文件的第一条语句定义了函数名、输入变元以及输出变元。如果没有这条语句,该文件就成为程序文件,而不再是函数文件了。输入变元和输出变元都可以有若干个,但必须在第一条语句中明确地列出。

程序中的运算都采用元素群算法,以保证此函数可按元素群调用。MATLAB中几乎所有的函数都能用元素群运算,所以我们自编的子程序,也要尽量满足元素群算法的要求,即子程序主体中均用点乘、点幂等运算符。

2.6.4 内联函数和匿名函数

(1)用上节方法来定义函数,必须在主程序之外重新建立一个函数文件,这不大方便。MATLAB还提供了一种简便的、直接在主程序文件中定义函数的方法,称为内联函数。它的调用格式为fun=inline(‘函数内容’,自变量列表)

例如f(x,y)=x2+xy2就可以用

f=inline(‘x.^2+x.*y.^2’,’x’,’y’)

来直接定义。不过这样的格式只能用来定义比较简单的、用一条语句就能求出结果的函数形

式。

(2)匿名函数式MATLAB 7.x 版本给出的新的函数定义形式,它的基本格式为 fun=@(自变量列表)函数内容 例如 f=@(x,y)x.^2+x.*y.^2

可见,它和inline函数很相似,但键入量更少,更简洁。更重要的是,该函数允许直接使用MATLAB工作空间中的变量。例如,在MATLAB工作空间中已经有了a和b,则匿名函数f=@(x,y)cos(a*x+b*y)就可以成立,无需把a、b列入变量列表中,所以使数学函数的定义更加方便。 2.6.5 快捷键 【Tab】(或【Ctrl+]】)——增加缩进(对多行有效) 【Ctrl+[】--减少缩进(对多行有效)

【Ctrl+I】--自动缩进(即自动排版,对多行有效) 【Ctrl+R】――注释(对多行有效) 【Ctrl+T】――去掉注释(对多行有效) 【F12】――设置或取消断点 【F5】――运行程序

Chapter 3 MATLAB的开发环境和工具

3.1 MATLAB与其他软件的接口关系

3.1.1 日期和时间命令

有关时间和日期方面的命令,都是从操作系统中提取数据的。这些命令见下表。

时间和日期函数库(timefun)

MATLAB心得

下面介绍如何确定做某种计算所需的时间。例如,想看看生成1个100×100阶随机矩阵并作求逆运算所需的时间,可以用下列三组语句之一: (1)t0=clock; y=inv(ran(100,100)); etime(clock,t0) (2)t=cputime; y=inv(ran(100,100)); cputime-t (3)tic; y=inv(ran(100,100)); toc

这三种方法的差别在于:第一种方法要先后两次提取年、月、日、时、分、秒的数据,并将他们相减;第二种方法以开机时间为基准;第三种方法则用tic把秒表置零,求得的toc就

是经历的时间。

3.2 MATLAB的文件管理系统

3.2.1 安装后的MATLAB文件管理系统

安装后的MATLAB根目录(通常表示为MATLABroot)下,至少有bin、extern、help、toolbox这四个子目录,其中子目录bin包含了MATLAB所要用到的二进制文件。启动MATLAB的执行文件matlab.exe就在这个目录中,双击这个文件就可以启动MATLAB软件。子目录extern包含了MATLAB所要用到的外部文件。子目录help包含了MATLAB的各种帮助文件,如果有下一级子目录pdf_doc,则其中将包括MATLAB及其工具箱的说明书,那是十分有用的资料。子目录toolbox包含了MATLAB的各种函数库及已装入的作为下一级子目录的工具箱名称等,它至少应有local和matlab两项,其中matlab(注意用的是小写)又有20多个子目录,分别是本书第1~4章介绍的MATLAB中的基本函数库。通常在MATLAB根目录下,还会自动建立一个用户的子目录work,以便把用户自编的程序存在这个子目录下,免得与系统中原有的文件混淆。

更多相关推荐:
快速美白产品试用心得

IMPRESS真实体验美白心得整理提供IMPRESS到我手中快一个月了我大概用了近三周在454545同学不停的催促下终于把这个试用心得写出来了因产品无成分表可看DM上也没有主要成分的介绍再加上是日本今年三月才推...

一个本科生在富士康的心得体会

参考文章发表日期-20xx-2-1414:25:03一个本科生在富士康的心得体会我就是在富士康干了三年的名牌大学本科生,刚进去时还美其名“新干班”,不过里面台湾人是最大的,大陆人被他们瞧不起,不过估计也是,我当…

关于我的20xx爱用彩妆品

工作总结还没编完还是先来写20xx彩妆总结吧博主常居帝都夏季油皮春秋冬混油易长痘偏好自然妆感本次提到的产品比较多有些之前博文中写过就不多赘述了就是要走简洁任性路线233Comeonbabyherewego妆前L...

护肤文章

女人,为什么看起来比别人先老看女人首先会看脸,加入你的脸给人家的感觉你比同龄人老的话,那就证明是你没有做好护肤。所以一定要注意保养哦。下面就分享下护肤经验吧。雪花秀是韩方,也就是中草药,味道不像欧美系的化妆品有…

去日本旅游买化妆品

去日本旅游买化妆品日本除了拥有众多的旅游资源以外同时也是一个十足的购物圣地下面众信旅游小编就跟大家分享一下去日本买化妆品的小小心得奥尔滨Albion被号称为日系三大水之一数年都稳扎COSME美妆大赏前三的位置这...

化妆品适用年龄

1倩碧适合20岁左右的油MM但是因为顾客群收入问题价格显得比较高其实倩碧还是很经用的不过想想它家号称每秒钟就卖出去N瓶的宣传就知道它家在国外的档次已经接近超市货了治疗痘痘皮肤见效快不过也因此很刺激水磁场抹上去的...

ACCA经验

终于完成了ACCA的考试开贴分享经验考试经过07年8月初到伦敦拿着一张master的offer因当时室友说ACCA就业比Master容易于是放弃了商科的Master直接考ACCA在新学校注册了ACCA课程又通知...

各类化妆品试用报告——转自校内

各类化妆品试用报告转自校内卸妆卸妆是非常重要的步骤不是只有化妆才需要卸妆无论是否化妆都需要卸妆紧紧用洗面奶是不够的眼部和唇部周围洗面奶不能完全清洁到长久下去眼周围细纹会增加肤色也会暗沉粉刺黑头会很严重直接影响护...

pocib学习心得

为期一个月的POCIB学习让我感触最深理解最深的只有一句话态度决定一切所以我坚持不求量多只求质高的要求以认真的态度对待自己的每位客户和每笔业务想想自己刚开始做POCIB时各种迷茫各种小心翼翼每走一步都会严格参照...

pocib实训内容总结

09级毕业生校内实习20xx年11月1日这一天我们开始了为期一个多月的pocib实习渐渐明白有时实际要比理论简单直接的多但大多数情况下实际操作还是比理论要复杂要间接通常是我在别人的实际操作中领会到了自己所学理论...

pocib心得

大学里一个不平凡的四月20xx年4月16号怀揣着期待的心情传说中的pocib开赛了就当我们激情高涨时开赛当天我们学校停电了意味着我们又跟其他选手落下了一节但是我们始终坚定信念广职加油直到晚上6点来电了我们欣喜万...

pocib超高经验

POCIB比赛心得一准备工作POCIB百科是非常好的工具比赛开始前一定要仔细阅读我来说一下需要重点看的地方1新手导航不用看或者说看上一遍了解一下就行了没什么用视频导航慢的要死还不如自己用练习账号随便点点也比这个...

cpb心得(6篇)