matlab考试重点详解

此帖是根据期末考试复习重点补充完成,

由于使用word编辑引用图片和链接略有不便,

所以开辟此贴复习及学习使用。侵删

复习要点

第一章

Matlab的基本概念,名称的来源,基本功能,帮助的使用方法

1.基本概念和名称来源:MATLAB [1]  是美国MathWorks公司出品的商业数学软件

用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。

MATLAB是matrix&laboratory两个词的组合,意为矩阵工厂(矩阵实验室)

2.基本功能:

  2.1数值计算和符号计算功能
  MATLAB以矩阵作为数据操作的基本单位,还提供了十分丰富的数值计算函数。

  2.2绘图功能,matlab提供了两个层次的绘图操作。一种是对图形句柄,进行底层绘图操作。另一种是建立在低层绘图操作之上的高层绘图操作。

  2.3编程语言
  MATLAB具有程序结构控制、函数调用、数据结构、输入输出、面向对象等程序语言特征,而且简单易学、编程效率高

  2.4MATLAB工具箱
  MATLAB包含两部分内容:基本部分和各种可选的工具箱。
  MATLAB工具箱分为两大类:功能性工具箱和学科性工具箱。

3.帮助的使用方法

  3.1  帮助命令

  MATLAB帮助命令包括help命令和lookfor命令。

  3.1.1 help命令
在MATLAB 命令窗口中直接输入help命令将会显示当前帮助系统中所包含的所有项目,即搜索路径中所有的目录名称。同样,可以通过help加函数名来显示该函数的帮助说明。

  3.1.2 lookfor命令
  help命令只搜索出那些关键字完全匹配的结果,lookfor命令对搜索范围内的M文件进行关键字搜索,条件比较宽松。
  lookfor命令只对M文件的第一行进行关键字搜索。若在lookfor命令加上-all选项,则可对M文件进行全文搜索。

  3.2  帮助窗口

  进入帮助窗口可以通过以下3种方法:
  3.2.1  单击MATLAB主窗口工具栏中的Help按钮。
  3.2.2 在命令窗口中输入helpwin、helpdesk或doc。
  3.2.3 选择Help菜单中的“MATLAB Help”选项。

 

第二章

1.变量的命名规则(也是函数和文件的命名规则)

2.预定义变量:pi,ans,lasterr等等

  Pi 圆周率π

  Ans   最新计算结果的默认变量名

3.内存变量的管理:who,whos

直接在command window里面打whos这个命令。就会把workspace里面所有变量的 Name(变量名), Size(维数), Bytes(占用字节数), Class(类别),都列出来。 具体看附图。

图转:https://www.cnblogs.com/ky027wh-sx/p/5956588.html

4.内存变量的保存和恢复:

  4.1变量保存

  用save可以保存变量。

  save data1 表示保存工作空间所有的变量到data1.mat中
  save data2 m 表将工作空间的m变量保存到data2.mat中,如果工作空间没有m会报错。
  save data3 m n p v 表示将工作空间中的 m n p v 四个变量保存到data3.mat中,如果工作空间没有这四个变量中的一个也会报错。

  4.2变量恢复

  Load data3.mat 读取环境变量,恢复变量。

5.矩阵的建立方法,定界符[ ],分隔符:空格或者逗号分隔同一行元素,分号分或回车隔不同行

Eg:

 

Eg:

 

6.利用已有矩阵建立大矩阵

6.1横向拼接

 

6.2纵向拼接

 

7.冒号表达式和linspace函数

 

 

8.矩阵元素的引用:单元素,多元素(要使用冒号表达式,本质是用矩阵做下标)

Matlab中数组元素引用有三种方法

1.下标法(subscripts)

2.索引法(index)

3 .布尔法(Boolean)
注意:在使用这三种方法之前,大家头脑一定要清晰的记住,Matlab中数组元素是按列存储(与Fortran一样),比如说下面的二维数组
A=
      8      1      6
      3      5      7
      4      9      2
Matlab的存储顺序是8,3,4,1,5,9,6,7,2,也就是说先行后列,对于3维数组呢,就是先行后列再页对应个元素的索引和下标分别为
 
8.1 下标法引用
A(ii,jj):其中ii和jj可以是一维向量、标量、“:”号或者“end”

大家对下标估计比较熟悉,由于在C语言中接触过,但是我这里需要强调的是,Matlab的下标是可以多行多列同时引用的,而像C语言等一次只能引用一个,比如
A(2:3,3:-1:1)表示引用数组中的2~3行,3~1列对应的元素
A(:,end)表示引用最后一列元素,“:”表示所有列或行,“end”表示最后一列或列,“end-n”表示倒数第n行或列
A( 1 ,end- 1 )表示引用第 1 行倒数第 2 个元素
A([ 2  1  3  3 ],[ 1  1  2  2  1 ])表示引用按两个向量引用指定的元素,即A中的第 2 , 1 , 3 , 3 行和第 1 , 1 , 2 , 2 , 1 列对应的元素
>>A=magic( 3 )
 
A =
      8      1      6
      3      5      7
      4      9      2
 
>>A( 2 : 3 , 3 :- 1 : 1 )
 
ans =
      7      5      3
      2      9      4
 
>>A(:,end)
 
ans =
      6
      7
      2
 
>>A( 1 ,end- 1 )
 
ans =
      1
 
>>A([ 2  1  3  3 ],[ 1  1  2  2  1 ])
 
ans =
      3      3      5      5      3
      8      8      1      1      8
      4      4      9      9      4
      4      4      9      9      4
8.2.索引法引用(说白了索引就是存储顺序)

 A(index):index可以是任意的数组,index的元素必须是正整数,且不大于numel(A),返回的是一个尺寸与index一样的数组

下标和索引之间可以通过ind2sub和sub2ind函数相互转换,具体可以看帮助,很简单

[I,J] = ind2sub(siz,IND)
IND = sub2ind(siz,I,J)
还有使用A(:)就可以将数组A转换为列向量

A(8):表示引用A的第8个元素
B=A([1 10 5 2 2 1 3]):表示依次引用A的第1,10,5,2,2,1,3个元素,返回与index尺寸相同的数组,也就是说size(B)=size(index)
A([2 5 9;1 1 1;8 5 6]):返回的时侯是一个3*3的矩阵
>>A=magic( 5 )%括号中为索引值
 
A =
     17  ( 1 )      24  ( 6 )      1  ( 11 )      8  ( 16 )     15  ( 21 )
     23  ( 2 )       5  ( 7 )      7  ( 12 )     14  ( 17 )     16  ( 22 )
      4  ( 3 )       6  ( 8 )     13  ( 13 )     20  ( 18 )     22  ( 23 )
     10  ( 4 )      12  ( 9 )     19  ( 14 )     21  ( 19 )      3  ( 24 )
     11  ( 5 )     18  ( 10 )     25  ( 15 )      2  ( 20 )      9  ( 25 )
 
>>A( 8 )
 
ans =
      6
 
>>A([ 1  10  5  2  2  1  3 ])
 
ans =
     17     18     11     23     23     17      4
 
>>A([ 2  5  9 ; 1  1  1 ; 8  5  6 ])
 
ans =
     23     11     12
     17     17     17
      6     11     24
 
 

8.3布尔法引用

A(X):X是一个有0和1组成布尔型数据,且size(A)=size(X),对应位置为1则留下该数据,0则去掉,最后按A中的存储顺序,返回一个列向量

假如说A是3*3的数组

A(logical([1 0 0;0 1 0;0 0 1])):表示引用了数组A的对角线元素,注意必须使用logical将0/1数组转换为布尔型
 
>>A=magic( 3 )%生成一个 3 * 3 的数组
 
A=
      8      1      6
      3      5      7
      4      9      2
 
>>x=logical([ 1  1  0 ; 0  1  1 ; 1  0  1 ])%将 double 转化为 boolean 型数据
 
x =
      1      1      0
      0      1      1
      1      0      1
 
>>A(x)%引用对应位置为 1 的数据,返回列向量
 
ans =
      8
      4
      1
      5
      7
      2
 
>>x=A> 5 %是有了比较语句,返回布尔型数据,对应位置数据大于 5 的为 1 ,否则为 0
 
x =
      1      0      1
      0      0      1
      0      1      0
 
>>A(x)%返回大于A中大于 5 的元素,其实该命令可以一次性执行A(A> 5 )或者find(A> 5 ),前者返回具体元素,后者返回大于 5 的数据的索引值
 
ans =
      8
      9
      6
      7
 
>>A(A> 5 )%一次性执行上面的命令
 
ans =
      8
      9
      6
      7
 
>>indx=find(A> 5 )%查找A中对于 5 的元素,返回它们的索引(index)值,此时我们可以通过A(index)返回具体的元素
 
index =
      1
      6
      7
      8
 
 

参考 https://blog.csdn.net/love_wanling/article/details/77103708

9.矩阵的运算:

矩阵运算可参考ppt,或通过检索查找(以下为笔者举出的两例,但不仅限):

https://jingyan.baidu.com/article/3c343ff7c867a50d36796360.html

https://jingyan.baidu.com/article/6766299799a99654d51b84a8.html

+-.*./ 同维矩阵对应元素比较

*/矩阵维数必须相容    注意左除和右除,谁在斜线下方谁求逆                                           

1/1

10.运算优先级

优先级从高到低:

  1. 圆括号()

  2.  转置(.')、共轭转置(’)、乘方(.^)、矩阵乘方(^)

  3. 一元加法(+)、一元减法(-)、取反(~)

  4.  乘法(.*)、矩阵乘法(*)、右除(./)、 左除(.\)、 矩阵右除(/)、矩阵 左除(\)

  5.  加法(+)、减法(-)、逻辑非(~)

  6.  冒号运算符(:)

  7.  小于、小于等于、大于、大于等于、等于、不等于

  8.  逐逻辑运算与(&)

  9. 逐逻辑运算或(|)

  10.  "避绕式"逻辑与(&&)

  11.  "避绕式"逻辑与(||)

11.常用函数length,sum,find

  11.1size

  获取数组的行数和列数

  11.2length

  数组长度,即行数和列数中的较大值,相当于max(size(a))

  11.3numel

  返回元素总数

  11.4 sum

  a=sum(x);%求和

  a=sum(x,2);%求和

  a=sum(x(:));%矩阵求和

       11.5 find

  11.5.1  b=find(a),a是一个矩阵,查询非零元素的位置,如果X是一个行向量,则返回一个行向量,

  否则,返回一个列向量。如果X全是零元素或者是空数组,

  则返回一个空数组,例子如下所示,也可以用b=find(a>2),这句的意思是在a中找到比较2大的元素

  11.5.2: 

  b=find(a,2),找出a中最先出现的2个不为零的数,a是你所要找的矩阵,2参数是指数量所下图

  

  11.5.3 c=find(a,2,'last') 这句的意思是从最后一个非零元素起,找2个不为零的元素

  其他等find函数用法,本贴不再介绍。具体可以参考https://jingyan.baidu.com/article/3c343ff71444890d3679635d.html

12. 4个取整函数的区别要会使用

  12.1 Fix()  (向零方向取整)

  12.2 Round()(四舍五入,向最大的方向取整)

  12.3 Floor() (向负无穷小取整)

  12.4 Ceil   (向正无穷大取整)

13. 关系运算和运算符,注意和c语言的区别(不等于~=而非!=),另外,MATLAB中关系或逻辑运算的参与方有矩阵时,表现为矩阵中对应元素比较或者矩阵中每个元素与标量比较,其运算结果为矩阵

逻辑运算的的运算符,注意和c语言的区别(取反为~),当矩阵参与到逻辑运算时,只有矩阵元素全为一才为真

 

第三章

特殊矩阵:zeros,ones,eye,rand,randn,注意怎样生成任意区间的均匀分布和指定均值和方差的正态分布,小心正态分布的方差是个平方值,在公式中使用时要开方才能作为参数。

专门矩阵:幻方阵,范德蒙阵,希尔伯特阵,伴随阵,帕斯卡阵等

三角阵的生成和从已知矩阵中提取三角阵和对角阵

矩阵的旋转,转置是旋转的特例

矩阵的翻转,上下左右

矩阵求逆及其应用(解方程组)

矩阵的秩和迹

矩阵的特征值和特征向量及其应用(求解高阶方程)

第四章

M文件的分类和区别

输入输出语句

控制不输出和注释

选择结构:单分支,多分支,注意end的使用,switch中case语句里面如果使用多个数做一个条件应将其写成{n1,n2,n3……,n5}的形式,如果用冒号表达式生产n1~n5,需要用num2cell进行转换,不能用case {n1:n5}的形式,应该是:case num2cell(n1:n5)

注意条件的边界

商品打折,百分五分转换

分段函数的两种构造:一种利用逻辑表达式和点运算构造,一种利用矩阵增长实现

Try catch条件语句的应用

循环结构,注意for常用冒号表达式做循环条件控制

For循环和向量点运算的区别和联系

While循环和break continue语句

函数的定义

形参实参怎样传递数据,怎样返回值,怎样返回多个值,输入参数的数量和输出参数的数量nargin,nargout

全局变量的使用

第五章

基本绘图plot(x,y)

用plot绘制多个图

矩阵绘图

用多条plot语句绘图,要使用hold on使多个图同时出现在画面上

Plotyy,在同一坐标绘制双图,其优势,颜色,线性,坐标轴,

绘图选项,图注和坐标控制

Loglog,bar,stem,stairs

所有的实验

猜你喜欢

转载自www.cnblogs.com/EEEE1/p/8982087.html
今日推荐