文章目录
- 1 优先级
- 2 通用命令
- 3 标点
- 4 数据类型
- 5 函数
- 5.1 运算函数
- 5.2 特殊函数
- 5.3 取整函数
- 5.4 数组函数
- 5.5 randperm & randsample
- 5.6 rand & randi & unifrnd & randn
- rand函数(常用)
- randi函数
- unifrnd函数
- randn函数(常用)
- 5.7 length & numel & size
- length函数
- numel函数
- size函数(常用)
- 5.8 find
- 5.9 max && min
- 5.10 end
- 5.11 cumsum & sum
1 优先级
优先级 | 运算法则 |
---|
1 | 括号: ( ) |
2 | 转置和乘幂:’、^ |
3 | 加减运算和逻辑非: +、-、~ |
4 | 乘除: *、/、点乘点除 |
5 | 冒号运算 : |
6 | 关系运算: >,>=,<, <=,==, ~= |
7 | 逐个元素的逻辑与: & |
8 | 逐个元素的逻辑或: | |
9 | 逻辑与: && |
10 | 逻辑或: || |
2 通用命令
命令 | 命令说明 |
---|
clc | 清除命令行窗口中的所有显示内容 |
clf | 清除图形窗口 |
clear | 清除工作区的内存变量 |
whos | 列出工作区中的变量类型等信息 |
quit | 退出MATLAB |
exit | 退出MATLAB |
3 标点
标点 | 说明 |
---|
: | 冒号,有多种功能 |
; | 分号,区分行及取消运行结果显示 |
, | 逗号,区分列即参数分隔符 |
() | 括号,指定运算的优先级 |
[] | 方括号,定义矩阵 |
{} | 大括号,构造单元数组 |
% | 百分号,注释标记 |
= | 等号,赋值标记 |
! | 惊叹号,调用操作系统运算 |
‘ | 单引号,字符串的标识符 |
. | 小数点及对象域访问 |
… | 续行符号 |
4 数据类型
4.1 整数类型

4.2 浮点数类型

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.43980.5663 0.1196 0.8559 0.58170.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 23 3 2 2 53 3 4 4 55 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 23 1 1 11 2 2 22 1 1 3
unifrnd函数
- unifrnd(a,b,m,n) 输出在区间[a,b]之间均匀分布的随机数组成的m*n的矩阵
>> unifrnd(-2,2,3,2)
ans =1.7360 0.97250.7149 -0.43111.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.41720.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 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 =12
j =12
5.9 max && min
- max(a) :寻找数组a中的最大元素
- max(a,b):返回 a 和 b 中的最大值
>> a=magic(3)
a =8 1 63 5 74 9 2
>> max(a,2)
ans =8 2 63 5 74 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 返回最大值的元素在每个维度中所处位置
5.10 end
end函数用法
5.11 cumsum & sum
cumsum 和 sum的区别
>> A=magic(4)
A =16 2 3 135 11 10 89 7 6 124 14 15 1
>> cumsum(A) % 列方向上求累积和
ans =16 2 3 1321 13 13 2130 20 19 3334 34 34 34
>> cumsum(A,1) % 列方向上求累积和
ans =16 2 3 1321 13 13 2130 20 19 3334 34 34 34
>> cumsum(A,2) % 行方向上求累积和
ans =16 18 21 345 16 26 349 16 22 344 18 33 34