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
  • 如果想随机生成-1和1。可以用如下指令:
>> 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):列方向上求累积和
>> cumsum(A)             %  列方向上求累积和
ans =
    16     2     3    13
    21    13    13    21
    30    20    19    33
    34    34    34    34
  • cumsum(A,1):列方向上求累积和
>> cumsum(A,1)           %  列方向上求累积和
ans =
    16     2     3    13
    21    13    13    21
    30    20    19    33
    34    34    34    34
  • cumsum(A,2):行方向上求累积和
>> 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 函数

scatter3用法
在这里插入图片描述

  • plot3函数

plot3函数

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐