1. Schedule
2. MATLAB基础知识
2.1 MATLAB编程模式
命令行(in command window)Scripts脚本(.m文件)2.2 MATLAB作为计算器
运算符:+ - * /^
计算结果,并显示为ans优先规则 在优先组中从左到右Precedence groups are (highest first): 方括号幂函数^
乘除* /
加减+ -
2.2.1 计算练习
cos((1+2+3+4)35)cos(\sqrt{\frac{(1+2+3+4)^3}{5}})cos(5(1+2+3+4)3)sin(π)+ln(tan(1))sin(\sqrt{\pi})+\ln(tan(1))sin(π)+ln(tan(1))23.5×1.72^{3.5\times1.7}23.5×1.7esin(10)e^{sin(10)}esin(10)2.3 初等数学函数
函数集合 算术三角函数指数与对数复数2.4 嵌入函数
函数可以嵌入到其他函数中:sin(cos(pi))=cos(pi),sin(ans)sin(cos(pi))=cos(pi),sin(ans)sin(cos(pi))=cos(pi),sin(ans)许多代码行可以压缩成一个命令2.5 变量
变量不需要在赋值之前声明单个“equal”符号(=)是赋值运算符>>> LHS = RHS>>> A = 10
变量大小写有区别 EX: A=10 a=10变数不可以以数字开头 EX:2A=10
2.6 特殊变量和常量
ansi, j: complex number 复数Inf:∞\infty∞ >> x = 1/0eps: 2.2204e-016>> x = log(0)NaN: not a number >> x = inf/infpi: π\piπ>> iskeyword # 返回matlab中所有的关键字,共20个>> iskeyword('while')ans =1>> iskeyword('except')ans =0
2.7 MATLAB 调用优先级
从高到低依次是:
变量内部函数子函数私有函数 MEX 文件P 文件M 文件
>> cos='This string.';% 本身cos是一个函数,但是在这里cos为变量,并将字符串This string.赋值给cos,cos(8)问的是字符串中第8个字符r>> cos(8)ans = r% 故尽量不要用 关键词 或者 内部函数 当做 变量命
2.8 数值显示“格式”
short3.1416long 3.141592653589793shortE 3.1416e+00longE3.141592653589793e+00bankhexrat355/113>> format long
2.9 命令行终端
matlab中分号“;
”表示不显示运算结果方向键上“↑\uparrow↑”可以调出之前的指令clc: clear command window displayclear: remove all variables in the workspacewho: variables in the workspacewhos: variable information of the workspace3. 数组矩阵基础知识
3.1 数组(Array)(向量和矩阵Vector and Matrix)
Row vector:
>> a = [1 2 3 4]
Column vector:
>> b = [1;2;3;4]
Try:
>> a*b
>> b*a
matrix:
>> A = [1 2 3;4 5 6;7 8 9;]
A=[123456789]A= \left[ \begin{matrix} 1 & 2 & 3 \\ 4 & 5 & 6 \\ 7 & 8 & 9 \end{matrix} \right] A=⎣⎡147258369⎦⎤
3.2 数组索引
选择矩阵内的某个元素子集A=[123456789]A= \left[ \begin{matrix} 1 & 2 & 3 \\ 4 & 5 & 6 \\ 7 & 8 & 9 \end{matrix} \right] A=⎣⎡147258369⎦⎤
>> A(8)# 矩阵A中第8个元素ans =6>> A([1 3 5]) # 矩阵A中第1 3 5个元素组成新的矩阵ans =1 7 5>> A([1 3; 1 3])# 矩阵A中第1 3个元素组成新的矩阵,其中;是换行符ans =1 71 7>> A(3,2)# 矩阵A中第3行第2列的元素ans =8>> A([1 3],[1 3]) # 前一个方括号表示第1 3行,后一个表示第1 3列,然后组成新的矩阵ans =1 37 9
3.3 替换元素
更改矩阵中的某个元素>> AA =123456789>> A(1,2)=3% 替换元素命令A =133456789>> A(3,:)% 此处 : 表示全部的意思,此命令代表矩阵 A 第三行的全部ans =789>> A(3,:)=[]% 将 A 的第三行用 空 替代A =123456
3.4 冒号操作符
想要创建一个长的数组:A = [1 2 3 … 100]语法:j:k ⟹\Longrightarrow⟹ [j, j+1, j+2,…, j+m]j:i:k ⟹\Longrightarrow⟹ [j, j+i, j+2i, …, j+m*i]
3.5 数组级联
>> A=[1 2; 3 4];>> B=[9 9; 9 9'];>> F=[A B]F =12993499>> F=[A;B]F =12349999
3.6 数组运算
数组运算符:+ - * / ^ . ’此处注意点乘.* 点除./ 点次方.^
,点乘是数组运算,要求参与运算的两个量必须是维数相同,是对应元素的相乘。3.7 一些特殊的矩阵
eye(n): 矩阵>> eye(3)
⟹I3=[100010001]\Longrightarrow I_3=\left[ \begin{matrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{matrix} \right]⟹I3=⎣⎡100010001⎦⎤
zeros(n1,n2): n1*n2的零矩阵
ones(n1,n2): n1*n2的 1 矩阵
diag( ): 对角线矩阵>> diag([2 3 4])
⟹[200030004]\Longrightarrow \left[ \begin{matrix} 2 & 0 & 0 \\ 0 & 3 & 0 \\ 0 & 0 & 4 \end{matrix} \right]⟹⎣⎡200030004⎦⎤
3.8 一些矩阵相关函数
A=[123056709]A= \left[ \begin{matrix} 1 & 2 & 3 \\ 0 & 5 & 6 \\ 7 & 0 & 9 \end{matrix} \right] A=⎣⎡107250369⎦⎤
>> max(A)# 每一列中最大的数ans =7 5 9>> max(max(A))# 数组中最大的数ans =9>> min(A)# 每一列中最小的数ans =0 0 3>> sum(A)# 每一列求和ans =8 7 18>> mean(A) # 每一列的平均数ans =2.6667 2.3333 6.0000>> sort(A)# 每一列元素按照从小到大的顺序排列ans =0 0 31 2 67 5 9>> sortrows(A)# 以行为单位,将第一列元素按照从小到大的顺序排列>> size(A)# A 是几行几列数组ans =3 3>> length(A)# 行的长度ans =3>> find(A==5)# 找到某元素在数组中的位置ans =5