1. Schedule
Week | Topic/Event | Notes |
---|---|---|
1 | 简介 | |
2 | MATLAB作为计算器与数组矩阵操作 | |
3 | 结构化程序设计与用户自定义函数 | |
4 | 变量与数据存取 | |
5 | 初阶绘图 | |
6 | 进阶绘图 |
2. MATLAB基础知识
2.1 MATLAB编程模式
- 命令行(in command window)
- Scripts脚本(.m文件)
2.2 MATLAB作为计算器
- 运算符:
+ - * /^
- 计算结果,并显示为ans
- 优先规则
- 在优先组中从左到右
- Precedence groups are (highest first):
- 方括号
- 幂函数
^
- 乘除
* /
- 加减
+ -
2.2.1 计算练习
2.3 初等数学函数
2.4 嵌入函数
- 函数可以嵌入到其他函数中:
- 许多代码行可以压缩成一个命令
2.5 变量
- 变量不需要在赋值之前声明
- 单个“equal”符号(=)是赋值运算符
>>> LHS = RHS
>>> A = 10
- 变量大小写有区别 EX: A=10 a=10
- 变数不可以以数字开头 EX:
2A=10
2.6 特殊变量和常量
- ans
- i, j: complex number 复数
- Inf: >> x = 1/0
- eps: 2.2204e-016 >> x = log(0)
- NaN: not a number >> x = inf/inf
- 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 数值显示“格式”
- short 3.1416
- long 3.141592653589793
- shortE 3.1416e+00
- longE 3.141592653589793e+00
- bank
- hex
- rat 355/113
>> format long
2.9 命令行终端
- matlab中分号“
;
”表示不显示运算结果 - 方向键上“ ”可以调出之前的指令
- clc: clear command window display
- clear: remove all variables in the workspace
- who: variables in the workspace
- whos: variable information of the workspace
3. 数组矩阵基础知识
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;]
3.2 数组索引
- 选择矩阵内的某个元素子集
>> 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 7
1 7
>> A(3,2) # 矩阵A中第3行第2列的元素
ans =
8
>> A([1 3],[1 3]) # 前一个方括号表示第1 3行,后一个表示第1 3列,然后组成新的矩阵
ans =
1 3
7 9
3.3 替换元素
- 更改矩阵中的某个元素
>> A
A =
1 2 3
4 5 6
7 8 9
>> A(1,2)=3 % 替换元素命令
A =
1 3 3
4 5 6
7 8 9
>> A(3,:) % 此处 : 表示全部的意思,此命令代表矩阵 A 第三行的全部
ans =
7 8 9
>> A(3,:)=[] % 将 A 的第三行用 空 替代
A =
1 2 3
4 5 6
3.4 冒号操作符
- 想要创建一个长的数组:A = [1 2 3 … 100]
- 语法:j:k
[j, j+1, j+2,…, j+m]
j:i:k [j, j+i, j+2i, …, j+m*i]
3.5 数组级联
>> A=[1 2; 3 4];
>> B=[9 9; 9 9'];
>> F=[A B]
F =
1 2 9 9
3 4 9 9
>> F=[A;B]
F =
1 2
3 4
9 9
9 9
3.6 数组运算
- 数组运算符:+ - * / ^ . ’
- 此处注意
点乘.* 点除./ 点次方.^
,点乘是数组运算,要求参与运算的两个量必须是维数相同,是对应元素的相乘。
3.7 一些特殊的矩阵
-
eye(n): 矩阵
>> eye(3)
-
zeros(n1,n2): n1*n2的零矩阵
-
ones(n1,n2): n1*n2的 1 矩阵
-
diag( ): 对角线矩阵
>> diag([2 3 4])
扫描二维码关注公众号,回复: 3291160 查看本文章
3.8 一些矩阵相关函数
>> 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 3
1 2 6
7 5 9
>> sortrows(A) # 以行为单位,将第一列元素按照从小到大的顺序排列
>> size(A) # A 是几行几列数组
ans =
3 3
>> length(A) # 行的长度
ans =
3
>> find(A==5) # 找到某元素在数组中的位置
ans =
5