1 优先级
| 优先级 |
运算法则 |
| 1 |
括号: ( ) |
| 2 |
转置和乘幂:’、^ |
| 3 |
加减运算和逻辑非: +、-、~ |
| 4 |
乘除: *、/、点乘点除 |
| 5 |
冒号运算 : |
| 6 |
关系运算: >,>=,<, <=,==, ~= |
| 7 |
逐个元素的逻辑与: & |
| 8 |
逐个元素的逻辑或: | |
| 9 |
逻辑与: && |
| 10 |
逻辑或: || |
2 通用命令
| 命令 |
命令说明 |
| clc |
清除命令行窗口中的所有显示内容 |
| clf |
清除图形窗口 |
| clear |
清除工作区的内存变量 |
| whos |
列出工作区中的变量类型等信息 |
| quit |
退出MATLAB |
| exit |
退出MATLAB |
3 标点
| 标点 |
说明 |
| : |
冒号,有多种功能 |
| ; |
分号,区分行及取消运行结果显示 |
| , |
逗号,区分列即参数分隔符 |
| () |
括号,指定运算的优先级 |
| [] |
方括号,定义矩阵 |
| {} |
大括号,构造单元数组 |
| % |
百分号,注释标记 |
| = |
等号,赋值标记 |
| ! |
惊叹号,调用操作系统运算 |
| ‘ |
单引号,字符串的标识符 |
| . |
小数点及对象域访问 |
| … |
续行符号 |
4 整数类型
| 整数类型 |
数值范围 |
转换函数 |
| 有符号8位整数 |
-2^7 ~ 2^7 -1 |
int 8 |
| 无符号8位整数 |
0 ~ 2^8 -1 |
uint 8 |
| 有符号16位整数 |
-2^15 ~ 2^15 -1 |
int 16 |
| 无符号16位整数 |
0 ~ 2^16 -1 |
uint 16 |
| 有符号32位整数 |
-2^31 ~ 2^31 -1 |
int 32 |
| 无符号32位整数 |
0 ~ 2^32 -1 |
uint 32 |
| 有符号64位整数 |
-2^63 ~ 2^63 -1 |
int 64 |
| 无符号64位整数 |
0 ~ 2^64 -1 |
uint 64 |
5 函数
常用函数的总结
5.1 运算函数(点乘与乘的区别)
| 函数名称 |
函数说明 |
| min(a,b) |
返回a和b中较小的值 |
| max(a,b) |
返回a和b中较大的值 |
| mean(x,2) |
找出x阵列的平均数 |
| median(x,2) |
找出x阵列的中位数 |
| sum(x) |
计算x阵列的总和值 |
| prod(x) |
计算x阵列的连乘值 |
| cumsum(x,2) |
计算x阵列的累计总和值(后面为2按照行来) |
| cumprod(x) |
计算x阵列的累积连乘值 |
| sign(x) |
x<0时返回值为-1,x = 0时返回值为0,x>0时返回值为1 |
关于.* 和 *以及.^ 和 ^的区别
5.2 特殊函数
| 函数名称 |
函数功能 |
| ones(n) |
构建n*n的矩阵,矩阵元素都是1 |
| ones(m,n) |
构建m*n的矩阵,矩阵元素都是1 |
| ones(size(A)) |
构建一个和矩阵A相同大小的1矩阵 |
| zeros(n) |
构建n*n的矩阵,矩阵元素都是0 |
| zeros(m,n) |
构建m*n的矩阵,矩阵元素都是0 |
| zeros(size(A)) |
构建一个和矩阵A相同大小的0矩阵 |
| eye(n) |
构建n*n的单位矩阵(对角线为1) |
| eye(m,n) |
构建m*n的单位矩阵 |
| eye(size(A)) |
构建一个和矩阵A相同大小的单位矩阵 |
| magic(n) |
构建n*n的矩阵,其每一行每一列的元素之和都相等 |
| rand(n) |
构建n*n的矩阵,其元素为0~1之间均匀分布的随机数 |
| rand(m, n) |
构建m*n的矩阵,其元素为0~1之间均匀分布的随机数 |
5.3 取整函数
- round():向最接近的整数取整,若小数部分大于等于0.5,则舍弃小数部分,整数部分加1。round(128.4)=128,round(128.5)=129
- fix():向0取整函数。fix(128.3)=128,fix(-128.4)=-128
- floor(x):向不大于x的最接近整数取整,floor(128.4)=128,(-128.4)=-129
- ceil(x):向不小于x的最接近整数取整,ceil(128.4)=129,(-128.4)=-128

5.4 数组函数
- linspace(start,stop,n):n为步长,产生一个从start开始,最后一个是stop的等差数列,公差为(stop - start)/(n - 1)。
5.5 randperm & randsample
randperm函数
- randperm:random permutation,随机排列的意思。
- randperm(n) 将1至n的序列打乱随机排列
>>randperm(5)
ans = 5 3 4 1 2
- randperm(m,n) 将前m个数中选取n个数进行随机排列
>>randperm(8,5)
ans = 5 7 9 8 3
- 如想要选取某一某一个向量A=[a1,a2,…,an]中的任一个数。则可以通过代码:
A( randperm(length(A),1) )
ans = A中随机选取任一个数,且所有数被选中的概率相等
randsample函数
- randsample:Random sample,随机取样。
- randsample(n,k) 与randperm(n,k) 的功能相同。
- randsample(n,k,replacement)同上,replacement表示是否允许重复,1表示k个元素可以有重复的,0表示不可以重复
>>randsample(10,5,true)
ans = 3 6 10 10 2
>>randsample(10,5,false)
ans = 5 6 3 10 8
- randsample(array,k)从array数组里面随机取出k个不相同的数
- randsample(array,k,replacement)
从array数组里面随机取出k个数,replacement表示是否允许重复,1表示k个元素可以有重复的,0表示不可以重复
- randsample(popluation,k,true,w)
w为权重系数,来确定原数组population或数组中不同元素出现的频次,从而生成一个长度为k的由population中的元素组成的新数组
>>randsample('ACGT',12,true,[0.15 0.35 0.35 0.15])
ans = 'AGTGGGCGCGAC'
5.6 rand & randi & unifrnd & randn
rand函数(常用)
- rand(m,n) 产生由在[0,1]之间均匀分布的随机数组成m行n列的矩阵
- rand(m) 等同于rand(m,m)
- rand就可以直接生成0到1的随机数,这个指令非常常用
>>rand(3,4)
ans = 0.8300 0.1048 0.2396 0.4398
0.5663 0.1196 0.8559 0.5817
0.9281 0.2574 0.3013 0.9355
>> sign(rand-0.5)
ans = 1
randi函数
- randi:random integral ,随机整数的意思
- randi([a,b],m,n) 在指定区间[a,b]内随机取出大小为m*n的整数矩阵,当m = n时,可以简写为randi([a,b],m)
>>randi([1,5],4,5)
ans = 5 3 1 4 2
3 3 2 2 5
3 3 4 4 5
5 4 2 1 2
- randi([m,n]) 在指定区间[m,n]内随机取出一个整数
- 如果想随机生成0和1,可以输入如下指令:
>>randi([0,1])
ans = 1
- randi(m,n) : 在1-m中随机取出整数,构成n×n的矩阵
>> X = randi(3,4)
X = 3 2 3 2
3 1 1 1
1 2 2 2
2 1 1 3
unifrnd函数
- unifrnd(a,b,m,n) 输出在区间[a,b]之间均匀分布的随机数组成的m*n的矩阵
>> unifrnd(-2,2,3,2)
ans =
1.7360 0.9725
0.7149 -0.4311
1.0310 0.6219
randn函数(常用)
- randn : 输出一个从标准正态分布中得到的随机标量
- randn(n) : 返回由正态分布的随机数组成的n×n矩阵
- randn(m,n) : 返回由正态分布的随机数组成的m×n矩阵
>> randn(3)
ans =
0.7254 -0.2050 1.4090
-0.0631 -0.1241 1.4172
0.7147 1.4897 0.6715

5.7 length & numel & size
length函数
- length:Length of largest array dimension,即返回数组维度的最大值
- length(A):返回数组 A 的元素个数
- 如果是矩阵,可以得到矩阵维度的最大值,如果是向量,则可以得到向量中的元素数
>>length(zeros(3,4))
ans = 4
numel函数
- numel:Number of array elements,返回数组中的元素数量
>> numel(zeros(3,4))
ans = 12
size函数(常用)
- size:Array dimensions,返回数组的维度数
- size(A) = a , b : a 表示为行数,b 表示为列数
- m = size(X,dim) :得到数组X的任一维度长度,dim=1,为行数、dim=2,为列数,以此类推
- a = size(X):得到数组X各个维度长度,若X为矩阵,得到其行数和列数
>> size(rand(2,3))
ans =
2 3
>> [m,n]=size(rand(2,3))
m = 2
n = 3
5.8 find
find函数详解
- find:Find indices and values of nonzero elements,常用的搜索定位计数函数
- find(X) :寻找数组X中不为0的元素,并返回其索引数(其索引数是按照如图所示的顺序索引的)

- find(~X):寻找数组X中为0的元素,若不存在为0的元素则返回空矩阵
>>a =
1 NaN
0 1
>> find(a)
ans = 1 3 4
- find(condition):按照搜索条件搜索满足条件的所有元素的索引数
>> find(a==1)
ans = 1 4
- [i, j] = find(condition):返回满足条件的所有元素的行数与列数
>>[i,j] = find(a==1)
i =
1
2
j =
1
2
5.9 max && min
- max(a) :寻找数组a中的最大元素
- max(a,b):返回 a 和 b 中的最大值
>> a=magic(3)
a =
8 1 6
3 5 7
4 9 2
>> max(a,2)
ans =
8 2 6
3 5 7
4 9 2
- 如果a为矩阵或向量,b为一个数,则max会将a中所有小于b的数替换成b,而如果b是一个与a相同大小的矩阵或向量,则max会两两对比取大值后得到一个新矩阵
- max(x,[],dim):其中dim=1为按列求最大值(这里dim = 1是列,与size相反); dim = 2为按行求最大值。之所以加‘[]’是为了和max(a,b)区分
>> max(x,[],2)
ans = 8 7 9
>> max(x,[],1)
ans = 8 9 7
- [i, j] = max(x,[],dim):i 返回按照dim维度求得的最大值,j 返回最大值的元素在每个维度中所处位置
- [C,I] = min(A):找到A中那些最⼩值的索引位置,将他们放在向量I中返回,C存放的是最小值。如果这⾥有多个相同最⼩值时,返回第⼀个的索引到I中
min 最小值用法
5.10 end
end函数用法
5.11 cumsum & sum
cumsum 和 sum的区别
>> A=magic(4)
A =
16 2 3 13
5 11 10 8
9 7 6 12
4 14 15 1
>> cumsum(A)
ans =
16 2 3 13
21 13 13 21
30 20 19 33
34 34 34 34
>> cumsum(A,1)
ans =
16 2 3 13
21 13 13 21
30 20 19 33
34 34 34 34
>> cumsum(A,2)
ans =
16 18 21 34
5 16 26 34
9 16 22 34
4 18 33 34
5.12 repmat
- B = repmat(A,m,n),将矩阵 A 复制 m×n 块,即把 A 作为 B 的元素,B 由 m×n 个 A 平铺而成
- B 的维数是 [size(A,1)*m, size(A,2)*n]
repmat函数说明
5.13 reshape
5.14 mod(取模) & rem(取余)
mod函数讲解
mod函数
- mod函数:采用floor函数,是向下取整,取小于等于这个数的第一个整数
- mod (12,5 )=2:12/5=2.4 向下舍入为2; 12 - 5*2=2; 所以mod (12,5 )=2
- mod(12,-5)=-3:12/-5=-2.4向下舍入为-3; 12–5(*(-3 )=-3; 所以mod(12,-5)=-3
- mod (-12,5 )=3:-12/5=-2.4向下舍入为-3; -12-5*(-3 )=3; 所以mod (-12,5 )=3
rem函数
- rem函数:采用fix函数,是固定取靠近0的那个整数,即舍去小数取整
- rem (12,5 )=2:12/5=2.4取整数,取2; 12 - 5*2=2; 所以rem (12,5 )=2
- rem(12,-5)=2:12/-5=-2.4取整数,取-2; 12–5(*(-2 )=2; 因此,rem(12,-5)=2
- rem (-12,5 )=-2:-12/5=-2.4取整数,取-2; -12-5*(-2 )=-2; 所以rem (12,5 )=-2
5.15 矩阵索引
矩阵索引
6 画图函数
6.1 scatter3 & plot3
scatter3用法

plot3函数
所有评论(0)