收藏 分销(赏)

MATLAB学习笔记整理.doc

上传人:天**** 文档编号:4779408 上传时间:2024-10-12 格式:DOC 页数:15 大小:454.38KB
下载 相关 举报
MATLAB学习笔记整理.doc_第1页
第1页 / 共15页
MATLAB学习笔记整理.doc_第2页
第2页 / 共15页
MATLAB学习笔记整理.doc_第3页
第3页 / 共15页
MATLAB学习笔记整理.doc_第4页
第4页 / 共15页
MATLAB学习笔记整理.doc_第5页
第5页 / 共15页
点击查看更多>>
资源描述

1、MATLAB笔记摘录:1、clc 命令清空命令窗口(The Command Windows)中的内容,可以用 clf 清空当前图象窗 口中的内容。在工作空间窗口(The workspace browser)中变量可用clear命令清除。2、能用 diary 命令记录下在 MATLAB 中运行过程中每个线程所做的事。3、常见编程错误 如果变量名与 MATLAB 中的函数或命令重名,那么这个函数或命令将不能被访问。4、常见编程错误 不要创建和 MATLAB 内建函数或命令同名的 M 文件。5、which 命令,它能帮助我们找到正在执行的文件版本和 它的路径。6、命令窗口是最重要的窗口,因为所有的命

2、令都得在此键入,所有的结果在此输出7、MATLAB 的变量名必须以字母开头,后面可以跟字母,数字和下划线(_).只有前 31 个字符是有效的;如果超过了 31 个字符,基余的字符将被忽略。如果声明两个变量,两变 量名只有第 32 个字符不同,那么 MATLAB 将它们当作同一变量对待8、像 MATLAB 这样的叫做弱类型语言。通过简单的赋值形式就可以 创建变量,变量类型取决于创建时的类型。9、。有三种方式初始化 MATLAB 中的变量: 1用赋值语句初始化变量 2用 input 函数从键盘输入初始化变量 3从文件读取一个数据10、克隆运算符指定一系列的数值,它指定了这个系列数的第一值,步增和后

3、一 个值。它的一般顺序始下 first:incr:last11、捷径表达式可以联合转置运算符()来初始化行向量,或更加复杂的矩阵12、函数 zeros 可以初始化任何大小的全 为零的数组。相似地,ones 函数产生的数组包含的元素全为 1,eye 函数通常用来产生单位矩阵,只有对 角线的元素为 1.其他元素为 0.13、input 函数中有字符s做为它的第二个参数,输入的数据就被当字符串. in2=input(enter data:,s) enter data:123 把字符串 1.23 存储到 in2 中.14、.数组,矩阵,向量有什么区别?答:矩阵是二维数组,向量是一维数组,矩阵和向量是数

4、据的子集。15、在数组名 后面加括号,括号里面是所有要选择的元素的下标,这样就能选择这个函数的子集了16、二维数组为例:arr1,:取数组的子集;arr1,2取具体的元素;17、format 包括两方面的内容,一方面是打印内容的文本的提示;另一方面是打印 的格式。18、fprintf 函数有一个重大的局限性,只能显示复数的实部。当我们的计算结果是复数时, 这个局限性将会产生错误。在这种情况下,好用 disp 显示数据。19、如果数据需要在 matlab 和其他程序之间交换使用,那么以 ASCII 格式存储数据。如果 只在 matlab 中使用那么,应以 mat 文件的形式存储数据。20、以“d

5、at”的扩展名保存 ASCII 数据文件,以区别于以“mat”为扩展名的 mat 文件。21、filename 代表你要保存变量的那个文件,var1,var2 等是要保存的变量。在默认情况下, 这个这个文件的扩展名为mat,我们称之为 MAT 文件。如果在 filename 后面无变量,则 工作区的所有内容将会被保存。22、MATLAB 在数组运算中提供了两种不同类型的运算,一种是数组运算(array operations), 一种是矩阵运算(matrix).数组运算是一种用于元素对元素的运算. .当一个数组和一个标量进行运算时,标量将会和数 组中的每一元素进行运算. 相对地,矩阵运算则遵守线

6、性代数的一般规则23、MATLAB 用一个特殊的符号来区分矩阵运算和数组运算。在需要区分两者不同的时侯, 把点置于符号前来指示这是一个数组运算(例如,.*)。数组运算符.*,.和./24、maxval index = max (1 -5 6 -3) 将会产生结果 maxval=6,和 index=3.25、一个 重要的选项是-dtiff.这个选项指定输出图片的格式是标签影像档案格式(TIFF)。26、下面这个命令将会创建一个 TIFF 格式的当前图象的图片,并保存在 一个叫 my_image.tif 的文件中 print dtiff my_image.tif 。你也可以选择图象窗口中的“fil

7、e/export”选项来创建 tiff 图片。 27、我们可以用 legend 来制作图例。它的基本的形式如下: legend(string1,string2,.,pos) 其中 string1,string2 等等是与轨迹标签名,而 pos 是一个整数,用来指定图例的位置。用 legend off 命令将能去除多余的图例。28、打印数据既可以用对数尺度,也可以用线性尺度:1.plot 函数的 x,y 均用线性尺度2.semilog 函数 x 轴用对数尺度,y 轴将用线性尺度3.semiloge 函数 x 轴用线性尺度,y 轴用对数尺度4.loglog 函数两坐标轴将会都用对数尺度。29、在M

8、ATLAB中有三种类型的错误:1.语法错误:缺括号等2.运行错误:当一个非法的数学运算出现在程序的过程(例如, 除以 0),将会出现运行时错误。这些错误将会使程序返回 Inf 或 NaN3.逻辑错误:指编译和运行都能通过,而产生 了错误的结果。 30、养成好的编程习惯:1. 尽可能的使用有意义的变量名,一眼就可以看懂,像 day,month,year. 2. 给每一个程序创建一个数据字典,以提高程序的可维护性.3. 变量名一律用小写字母,这样可以不会因大小写不同而造成变量混淆。 4. 在所有的 MATLAB 赋值语句的后面加上一个分号,用来禁止赋值的重复.在程序调 试期间,如果你检验某个语句的

9、值,可去掉语句后的分号. 5. 如果要在 MATLAB 和其他程序之间交换数据,那么就要以 ASCII 格式存储数据.如 果数据只应用在此 MATLAB 中那么,应以 matfile 格式存储数据. 6. 以”dat”为扩展名保存 ASCII 数据以区分 MAT 文件,MAT 文件的扩展名为 mat. 7. 用适当的括号使你的表达式清晰,易理解. 8. 当你读取和写入数据时,使用适当的单位31、常见的数组与矩阵的运算:运算 MATLAB 形式注释数组加法A+B数组加法和矩阵加法相同数组减法A B数组减法和矩阵减法相同数组乘法A.*BA 和 B 的元素逐个对应相乘.两数组之间必须有相同 的形,或

10、其中一个是标量.矩阵乘法A*BA 和 B 的矩阵乘法.A 的列数必须和 B 的行数相同.数组右除法A./BA 和 B 的元素逐个对应相除: A(i,j)/B(i,j)两数组之间必须有相同的形,或其中一个 是标量.数组左除法A.BA 和 B 的元素逐个对应相除: B(i,j)/A(i,j)两数组之间必须有相同的形,或其中一个 是标量.矩阵右除法A/B矩阵除法,等价于 A*inv(B), inv(B)是 B 的逆阵矩阵左除法AB矩阵除法,等价于 inv(B)*A, inv(A)是 A 的逆阵数组指数运算A.BAB 中的元素逐个进行如下运算 A(i,j)B(i,j), A(i,j)/B(i,j)两数

11、组之间必须有相同的形,或其中一个 是标量.32、有两大类控制顺序结构:选择结构,用选择执行特定的语句;循环 结构,用于重复执行特定部分的代码。33、程序设计的基本步骤如下: 1.清晰地陈述出你要解决的问题。 2.确定程序所需地输入量和程序所产生的输出量。 3.为你的程序设计算法 (伪代码)4.将算法转化为 MATLAB 语句 5.调试 MATLAB 程序34、有两 种形式的运算符可以在 MATLAB 中关系得到 true/false:关系运算符和逻辑运算符。 跟 C 语言一样,MATLAB 没有布尔型和逻辑数据类型。MATLAB 把 0 值作为结果 false,把所有的非 0 值作为结果 tu

12、re。35、关系运算符也可用于标量与数组的比较。关系运算符也可比较两个数组,只要两个数组具有相同的大小。关系运算符也比较两个相同长度的字符串36、符号=是一个比较运算符,返回一个逻辑数,而符号=是 将等号右边的表达式的值赋给左边的变量37、如果它为 0,则其为 false。所以5 的结果为 0,0 的结果为 1。38、标量和数组之间也可进行逻辑运算。两数组之间也可进行逻辑运算,只要它们具有相同的大小。39、逻辑运算在所有的数学运算和关系运算之后进行。数学运算符关系运算符逻辑运算符40、表达式中的运算顺序如下: 1.所有的数学运算按照前面描述的顺序的进行。 2.从左向右依次进行关系运算 3.执行

13、所有运算 4.从左向右依次进行&运算 5.从左向右依次进行|运算和数学运算一样,括号能够改变括号的默认顺序。41、选择结构在 MATLAB 中有三种具体的形式:if 结构,switch 结构和 try/catch 结构。42、对于有许多选项的选择结构来说,好在一个 if 结构中使用多个 elseif 语句,尽量不 用 if 的嵌套结构。43、注意只有带有字符参数的函数才能当作命令。带有数字参数的函数只能被当作函数。44、在同一坐标系内画出多个图象:1.当 hold on 命令执行后,所有的新的图象 都会叠加在原来存在的图象。hold off 命令可恢复默认情况,用新的图象来替代原来的图 象。2

14、.我们用 figure 函数来选择当前窗口。这个函数的形式为“figure(n)”,其中 n 代表图象 数。当这个函数被执行后,图 n 将会变为当前图象,执行所有的画图命令。3.gcf 函数用于当于返回当前图象数。4. subplot 命令允许程序在一个图象窗中创建多个子图象。45、文本的字体通可以通过 stream modifiers 修改。一个 stream modifier 是一个特殊的字符 序列, 用来告诉编译器改变它的行为。46、一旦一个 stream modifier 插入一个文本字符串中,它持续发挥作用,直到这个字符串 的结束或消失。如果一个 modifier 后在跟着一个,只有

15、中的文本起作用。47、如果要打印转义符,_,或就必须在前面加上一个反斜杠48、Matlab 中包括一个重要的函数叫做 polar,它用于在极坐标系中画图。这个函数的基本形式 如下: polar(theta,r)49、50、设置断点:我们可以用鼠标 右击你所关心的行并选择”set/clear breakpoint”选项。51、一旦到达某个断点程序员可以通过在命令窗口中键入变量名的方法检查或修改在工作 区内的任一变量。当程序员对程序的这一点感到满意时,可以通过重复按 F10 一行一行调 试,也可以按 F5 运行到下一个断点。它总是能检测程序中的每一个断点中的任何一个变量 的值。52、这个菜单包括两

16、个项目: “stop if Error”和“stop if warning”53、axis 命令允许程序员指定 X,Y 轴的取值 范围54、循环结构有两种 基本形式:while 循环和 for 循环。55、其中 index 是循环变量(就是我们所熟知的循环指数),exp 是循环控制表达式。变量 index 读取的是数组 expr 的行数,然后程序执行循环体(loopbody),所以 expr 有多少列, 循环体就循环多少次。expr 经常用捷径表达式的方式,即 first:incr:last。for index = expr (1:n) Statement 1 . Body Statement

17、 nEnd注意:在循环体在后一次执行后,循环系数将 会一直为 n。循环指数可以为向量。56、每一次扩展数组,都要经过以下 步骤:第一步,创建一个新数组。第二步,把旧数组的元素复制到新数组当中。第三步,把 扩展的元素写入新数组。第四步,删除旧数组。对于大数组来说这些步骤是相当耗时的。57、向量算法的缺点是需要很大的内存,因为一些间接的数组需要创建。这经常是一小点 损失,所以要比 for 循环算法好的多。 在 matlab 中,用向量算法代替循环的算法的过程称之为向量化(vectorization)。向量化 能够改进许多的 matlab 程序。注意:那种既可以用向量可以解决的问题,也可以用循环解决

18、的问题,好用向量解决,这 是因为向量执行的速度快。58、:break 和 continue 语句。break 语句可以中止 循环的执行和跳到 end 后面的第一句执行,而 continue 只中止本次循环,然后返回循环的 顶部59、如果你要利用那些没有被选择到的 元素进行运算,只需要在逻辑屏蔽上加一个非运算符(-)60、for kk=0,5;3,3,一次循环一个列向量,第一次循环kk=0;3,第二次循环kk=5;361、size(a,1)是矩阵a的行数,size(a,2)表示矩阵a的列数62、单次执行一段代码所消耗的时间有一定的偶然性,maxcount的作用是把循环体的代码重复执行多次,然后取

19、平均值,以尽量消除偶然性因素的影响63、逻辑数组有一个重要的属性它在算术运算中能提供一个屏蔽(mask)。屏蔽(mask)是 指一个数组,它从另一个数组选择所需的元素参与运算。指定的运算只在选择的元素上执 行,而不执行原有的元素。64、bf 黑体 it 斜体 rm 恢复正常字体 fontname 字体的名字 fontsize 字体的大小 _xxx xxx 做为某字符的上标 xxx xxx 做为某字符的下标65、一个数组的逻辑属性可以通任何的数学运算去除;用 logical 函数给一个数组加上一个逻辑属性。66、function outarg1, outarg2, . = fname(inarg

20、1, inarg2, .)function 语句标志着这个函数的开始。它指定了函数的名称和输入输出列表。输入函数 列表显示在函数名后面的括号中。输出函数列表显示在等号左边的中括号中。(如果只有一 个输出参数,中括号可以省略。) 67、绘图y 黄色 . 点 - 实线 m 品红色 o 圈 : 点线 c 青绿色 x 号 -. 画点线 r 红色 s 正方形 - 虚线 g 绿色 d 菱形 无 颜色 标记类型 线型 b 蓝色 v 倒三角 w 白色 正三角 k 黑色 三角(向右) 三角(向左) p 五角星 h 六线形 无68、MATLAB特殊符号及说明:(53)69、程序调试(89)1.设置断点2.运行程序

21、3.F10 按程序一步步执行4. 按 F5 运行到下一个断点5.F11 进入函数一步步调试70、maltab 程序与它们函数之间的交互用是按值传递机制。当一个函数调用发生时, MATLAB 将会复制实参生成一个副本,然后把它们传递给函数。这次复制是非常重要的, 因为它意味着虽然函数修改了输入参数,但它并没有影响到调用者的原值。这个特性防止了因函数修改变量而导致的意想不到的严重错误71、选择性参数nargin 这个函数返回调用这个函数时所需要的实际输入参数的个数nargout 这个函数返回调用这个函数时所需要的实际输出参数的个数 nargchk 如要一个函数调用被调用时参数过多或过少,那么 na

22、rgchk 函数将返回一个 标准错误信息 error 显示错误信息,并中止函数以免它产生这个错误。如果参数错误是致命的, 这个函数将会被调用。 warning 显示警告信息并继续执行函数,如果参数错误不是致命的,执行还能继续, 则这个将会被调用。 inputname 这个函数将会返回对于特定参数个数的实际变量名。 72、脚本文件与函数的区别:函数:程序部分的独立检测,代码的可复用 性,避免意想不到的错误。脚本文件:把每一个子问题产生的 MATLAB 代码嵌入到一个单独的 大程序中。在嵌入之前我们无法对每一次子问题的代码进行独立地验证和测试脚本文件是保存在文件中的 MATLAB 语句集合。脚本文

23、件共享命令窗口工作区,所以任何 之前运行的脚本文件中定义的变量都能被当前脚本文件使用,脚本文件定义的变量在文件执 行之后还保留在工作区中。脚本文件没有输入参数,也没有输出参数,不过脚本文件之间可 以通过工作区交换数据。相反,每一个 MATLAB 函数运行在它自己的独立工作区,函数通 过输入参数列表获取输入数据,通过输出参数列表给调用者返回数据。73、函数通过输入参数列表(input argument list)从程序中读取输入值,通过输出参数列表 (output argument list)给程序返回结果74、自定义函数的 help 命令是如何工作的?答:help 命令显示某个函数的所有注释行

24、,直到遇到空白注释行或执行语句为止。75、函数中的 H1 注释行有什么重要性?答:它应当是对本函数功能的总结。这一行的重要性在于,通过 lookfor 命令它能被搜 索到并显示出来。从 H1 注释行到第一个空行或第一个可执行性语句可以通过 help 命令或 帮助窗口搜索到。它们则应包含如何使用这个函数的简单总结。H1 注释行是文件中注释的第一行,这一行可以被 lookfor 命令搜索并显示。应该把该函数的 用途摘要写在这一行中。 76、什么是按值传递机制?它对结构化编程有什么好处。实参传递给形参的过程,不会修改调用函数的变量值。MATLAB中按值传递,值可以是标量、数据在值传递机制中,每个输入

25、参数的副本而不是参数本身从调用者传递给函数。这样设计可以 避免输入数据在函数内被自由的修改,这可能并不是调用者实际上需要的,因而也为设计好 程序提供保证。77、如何使 MATLAB 函数带有选择性参数?(见71)78、全局变量(占用的是全局内存,而不是本地工作区)的声明要用到 global 主语句,基本形式如下 global var1 var2 var3 . 其中 var1,var2,var3 等等是用全局内存的变量。为了方便,全局变量将在函数开头 被声明,但是实际上没有这个必要。 79、在函数中的初始注释行之后和第一个可执行性语句之前声明全局变量80、随机数种子不同产生不同的结果,种子同时,

26、结果同。不设置种子,每次取的随机数相同。81、持久变量应用语句声明。它的形式如下: persistent var1 var2 var3 . var1,var2,var3.是存储于持久内存中的变量。82、常见的函数的函数:fminbnd 求函数的最小值,这函数只有一个自变量 fzero 找出函数为 0 时的自变量的值 quad 在数学上组合一个函数 ezplot 简单易用的函数画图 fplot 通过函数名画出这个函数的图象83、函数 feval 对在 M 文件进行定义的命名函数进行求值,要求有指定的输入值。函数 feaval 的基本形式如下 feval(fun, value).84、函数的函数操

27、作的关键字有两个专门的 maltab 函数,eval 和 feval。函数 eval 对一个 字符串进行求值,就如它在命令窗口中已经键入了一样。函数 feval 用一个特定的输入值对 命名的函数进行求值。85、好的编程习惯:1.把大的程序分解小的,易于理解的函数 2.在 M 文件的开头声明全局变量。以区分本地变量 3.在函数中的初始注释行之后和第一个可执行性语句之前声明全局变量 4.全局变量适用大规模数据的传输 (global)5.在两次函数调用之间有持久内存保存本地数据。(persistent) 6.用子函数或私有函数来隐藏特殊目的的函数,这些隐藏的函数只能被其他函数调 用。隐藏这些函数防止

28、了它们偶然的使用,也能防止与其他公共函数重名时发生的冲突。86、关系运算符,=只比较 复数的实部,而不是它们的模。87、我们可以利用 char 函数把 double 型数据转化为字符型数据。我们可以利用 double 函数把变量从字型转化为 double 型。88、创建二维字符数组,但一个数组中每一行的长度都必须相等。应用 deblank 函数去除多余空格。 line2 = name(2,:) line2 = Senior Engineer line2_trim = deblank(name(2,:) line2_trim = Senior Engineer size(line2) ans =

29、 1 18 size(line2_trim) ans = 1 189、函数 strcat 水平连接两字符串,忽略所有字符串末端的空格,而字符串的空格保留。函数 strvcat 用于竖直地连接两字符串,自动地把它转化为二维数组。你可以利用 MATLAB 函数比较两字符串整体是否相同。它们是:strcmp 判断两字符串是否等价 strcmpi 忽略大小写判断两字符串是否等价 strncmp 判断两字符串前 n 个字符是否等价strncmpi 忽略大小写判断两字符串前 n 个字符是否等价90、函数 strtok 返回输入字符串中第一次出现在分隔符前面的所有字符。默认的分隔符为 一系列的空白字符tok

30、en, remainder = strtok(string,delim) 其中 string 是输入字符串,delim 是可选择的分隔符,token 代表输入字符串中第一次 出现在分隔符前面的所有字符,remainder 代表这一行的其余部分。 token, remainder = strtok(This is a test!) token = This remainder = is a test!91、大小写转换:函数 upper 和 lower 分别把一个字符串中所有转化大定和小写注意在大小转换时,数字和符号不受影响。 92、MATLAB 把由数字组成的字符串转化为数字要用到函数 eval

31、。字符串可以用 sscanf 函数转化为数字。这个函数根据格式化转义字符转化为相应的数 字。这个函数简单的形式如下 value = sscanf(string, format) 其中,string 是要转化的字符串,format 是相应的转义字符。函数 sscanf 两种普通的 转义序是“%d”,“%g”,它们分别代表输出为整数或浮点数93、 MATLAB 中有许多的字符串/数字转换函数把数字转化为相应的字符串函数 num2str 为输出字符串的格式提供更多的控制。第二个可选择的参数可以对输出 字符串的数字个数进行设置或指定一个实际格式。例如 p = num2str(pi,7) p = 3.1

32、41593 p = num2str(pi,%10.5e) p = 3.14159e+00094、函数 int2str 和 num2str 对作图标签是非常有用的。例如,下面的语句用 num2str 生成 图象的标签。 function plotlabel(x,y) plot(x,y) str1 = num2str(min(x); str2 = num2str(max(x); out = Value of f from str1 to str2; xlabel(out); 95、MATLAB 函数 mat2str 可以把一个数组转化为相应的 MATLAB 能运算字符串。96、97、message = nargchk(min_args, max_args, num_args); 其中 min_args 是指参数的最小个数,max_args 是指数的最大个数,num_args 是指参数 的实际个数。如果参数的个数不在允许的范围,将会产生一个标准的错误信息。如果参数 的个数在允许的范围之内,那么这个函数将返回一个空字符。98、

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 通信科技 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服