Matlab复习资料
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
大家好!这是一份matlab复习资料,在里面可能有几道模拟题的答案(注意模拟题中的变化);对于其他的答案,恕我的能力有限,无法满足大家的需求,我在此致以崇高的
歉意。
最后祝愿每个人取得理想的成绩2011年06月29日
刘自迪
Matlab复习资料
一、基本概念、命令、语句格式、程序结构
1. MATLAB是一种用于科学工程计算的高级语言,其基本的数据单位是矩阵,它的命令表达式与数学、工程中常用的习惯表达形式十分相似;
2. MATLAB高效方便的矩阵和数组运算,使之在数字信号处理、建模、系统识别、自动控制、优化等领域的问题时,显得十分简洁、高交,具有其他高级语言不可比拟的优势;
3. MATLAB的典型应用包括以下几个方面:数学计算、算法设计、建模与仿真、数据分析与可视化、科学及工程绘图和应用开发;
4. MATLAB最显著的特点是其基本数据是不需要定义大小的数组;
5. MATLAB语言是以矩阵和向量为基本数据单位,包括控制流程语句、函数、数据结构、输入输出及面向对象等特点的高级语言;
6. MATLAB的工作空间指运行MATLAB的所有变量和MATLAB提供的常量构成的空间;
7. 在命令窗口中键入who和whos命令可以看到目前工作空间里的所有变量,命令clear可以删除工作空间里的变量;
8. MATLAB用“%”实现注释功能;可以把多条命令放在同一行,只要中间用逗号或分号隔开,逗号告诉MATLAB显示结果;分号说明除了这一条命令外还有下一条命令等待输入,MATLAB这时将不会给出运行的中间结果;
9. MATLAB的“类”目录名都以@符为引导,其上存放“类构造”函数和“重载”函数;
10. 用path命令扩展的搜索路径仅在当前MATLAB环境下有效;
11. MATLAB有两种最常用的创建数组的方式:“冒号表示形式”直接定义数据点之间的增量而不是数据点;linspace直接定义数据点数,而不是数据点之间的增量;
12. MATLAB数组中以空格或逗号分隔的元素指定的是不同列的元素,而以分号分隔的元素指定了不同行的元素;另:MATLAB的数组存储,也表现在绝对索引上,是按从上到下、从左到右的顺序进行的。
13. 点乘符号.*对数组c和d施加元素对元素的乘法运算,不带点的乘号表示矩阵乘法;
14. 数组除法同时使用了正斜杠和反斜杠两种定义:两种情况下,斜杠下的数组都被斜杠上的数组所除;
15. B.\A表示对应元素相除;
16. reshape函数用于在总元素不变的前提下,改变数组的“行数”、“列数”;
17. 为了生成比较复杂的数组,MATLAB提供了诸如反转、插入、提取、收缩、重组等对数组和矩阵的操作方式;
18. 函数find用于返回数组或矩阵中满足某关系表达式的那些元素的位置或下标;
19. 可用命令class和ischar来查看变量是否为字符数组;
20. 采用输入数值矩阵的方法输入字符矩阵时,应保证矩阵的每行字符串的长度相同;
21. 函数cellstr可把字符矩阵转换成元胞数组;
22. 函数mat2str把数值数组组转换为字符串,用eval函数又可把这种字符串转换成数值数组;
23. 元胞数组的每一个元素可为类型不同、维数不同的矩阵、向量、标量或多维数组,所有元素用大括号括起来;
24. 中括号对“[ ]”用来形成矩阵,大括号对“{ }”是元胞数组的标志。两者不同之处在于,大括号可以嵌套,而中括号不可;
25. 函数celldisp用来显示元胞数组的每个元素的值,函数cellplot将画出元胞数组的每个元素的结构图;
26. 当给已经定义的元胞数组下标范围外的元素赋值时,MATLAB自动扩维,对于没有赋值的元素,赋值为空矩阵;
27. 在赋值语句中,每次只能给元胞数组的一个元素赋值,采用形如“a{1,:}=…”的赋值语句是不合法的;
28. 结合使用冒号运算和大括号可以方便地引用元胞数组中的多个元素,并把引用的元素分为不同的变量;
29. 数据不能直存放于结构体,而只能存放在域中。结构体的域可以存放任何类型、任何大小的数组;
30. 在矩阵下标的表达式里使用冒号表示矩阵的一部分,如A(:,j)表示矩阵A的第j
列的所有元素。由于有了冒号运算符,在MATLAB里编程变得特别简便、快捷;
31. 在MATLAB里,可通过把矩阵的列或行赋值为空矩阵来删除某行或某列;
32. A(1:2:5)表示删除下标为1、3、5的三个元素;
33. 在MATLAB里,当行向量乘以列向量时为标量积(内积),当列向量乘以行向量时为向量积(外积);
34. 函数cond(A)计算矩阵的条件数;
35. [V,D]=eig(A)求特征值与特征向量;
36. det(A)计算行列式;
37. Inv(A)求矩阵的逆;
38. poly(A)求特征多项式;
39. 函数polyfit从最小二乘的意义上,拟合出所给数据的多项式系数;
40. x(any(isnan(x)'),:) =[ ]作用是删除所有包含NaN的行;
41. any(x)的功能是:如果在一个向量x中,任何元素是非零,返回1;
42. all(x)的功能是:如果在一个向量x中,所有元素非零,返回1;
43. 函数工作空间变量nargin包含输入参量个数,函数工作空间变量nargout包含输出参量个数;
44. 局部(local)变量是存在于函数空间内部的中间变量,产生于该函数的运行过程中,其影响范围也仅限于该函数本身;
45. 全局(global)变量是在不同的工作空间以及基本工作空间中可以被共享的变量;
46. 私有函数只能被private目录的直接父目录上的M函数文件所调用;
47. 数值数组的预定维一般采用zeros函数,元胞数组预定维采用cell函数,结构型数组用struct函数预定维;
48. clear命令从内存中删除变量;
49. pack命令把内存中的变量存入磁盘,再用内存中的连续空间载回这些变量;
50. 在MATLAB里,对象是用结构体数组来存储的;
51. 函数figure 可建立新的图形窗口,并把新建的窗口指定为当前窗口用于输出图形;
52. 命令subplot可以把多个图形绘在一个图形窗口中;
53. 命令what列出当前目录或文件夹下的所有M文件和MAT文件;
54. help、lookfor等命令都不能提供关于私有函数的任何帮助信息;
55. MATLAB还提供了两种演算函数来提高计算的灵活性:一种是串演算函数eval,另一种是函数句柄演算函数feval;
56. 编程时,把循环向量化,不但能缩短程序的长度,更能提高程序的执行效率;
57. 在MATLAB里运行C语言的可执行文件,应在文件名前加上感叹号“!”;
58. 函数meshgrid(x,y)对y中行的每一行复制x,同样也对x中列的每一列复制y;
59. MATLAB提供了一个称为fplot的巧妙的绘图函数,该函数细致地计算要绘图的函数,并且确保在输出的图形中表示出所有的奇异点;
60. 在图形窗口里,legend、zoom、ginput都响应鼠标的单击。
二、MATLAB矩阵运算基础
创建行矢量:在一对方括号中输入元素,并用空格或是逗号分隔开。创建列矢量:使用分号分割开。
转置运算符('),若数组中包含复数元素,那么产生复共轭转置。可以使用点转置运输符(.'),所有元素是实数,它们的运算结果相同。
数组索引:行号总是列在前面。V(:,2:4)表示矩阵中第二列,到第五列的所有元素。通过让矩阵的某些行或列赋值空数组,就可以删除相应的行或列。A([1 4], :)=[];删除矩阵A 的第1行和第4行。