首页 > 其他分享 >MATLAB:基本的数学运算与矩阵运算

MATLAB:基本的数学运算与矩阵运算

时间:2023-09-14 21:32:49浏览次数:50  
标签:begin end 变量 矩阵 MATLAB bmatrix 运算

学习一门技术最好的方式就是阅读官方文档,你可以查看 MATLAB官方文档

MATLAB基本语法

变量

  • MATLAB中的变量不需要声明。
  • 使用=为变量赋值。

变量名

  • 与大多数编程语言相同,MATLAB中的变量名是大小写敏感的。
  • 变量名只能由[0~9, a~z, A~Z, _]组成,且变量名不能以数字开头。

保留变量不适合做变量名

MATLAB中有一些变量有其具体意义,不适合用作变量名。

变量 意义
ans 上一句的运算结果
ij 复数单位
Inf 无穷大
eps 浮点相对精度,即1.0到下一个浮点数之间的距离(值为2.2204e-16)
NaN 非数字
pi 圆周率

除此以外,使用iskeyword函数可以查看MATLAB语言中的所有关键字,这些关键字也不允许被用作变量名。

变量名不应当覆盖内置函数名

image.png

在MATLAB中,变量的调用优先级高于函数,因此变量名不应该覆盖内置函数。

cos = 'This string.';
cos(8)      % 对字符串进行索引取值,得到'r'

若某函数被变量名所覆盖,则调用clear <变量名>可以取消绑定在该函数名上的变量名。

clear cos   % 清除绑定在cos上的变量
cos(8)      % 调用内置余弦函数运算得到-0.1455

clear是一个比较危险的命令,因为该命令后若不加参数,则表示清除当前工作区内的所有变量。

变量类型

image.png

MATLAB中的变量类型有:logicalcharnumericcellstruct以及由它们组成的数组或矩阵。

数字型变量的显示格式

我们直接定义的数字型变量,默认是以double形式存储的。

我们可以通过format <显示格式>改变数字型变量的显示格式。

显示格式 说明 例子
short 短定点格式。显示小数点后4位 3.1416
long 长定点格式。对double类型变量显示小数点后15位,对float类型变量显示小数点后7位 3.141592653589793
shortE 短科学计数法,显示小数点后4位,并带有科学计数法标记 3.1416e+00
longE 长科学计数法。对double类型变量显示小数点后15位,对float类型变量显示小数点后7位,并带有科学计数法标记 3.141592653589793e+00
bank 银行格式。显示小数点后2位 3.14
hex 十六进制格式 400921fb54442d18
rat 比例格式 355/113

MATLAB命令行

  1. 使用行尾;抑制输出:在一行命令后使用;抑制输出,否则运算结果将被显示在终端上。

  2. 其他实用的命令:

    命令 作用
    clc 清除终端的输出
    clear 清除当前工作区内所有变量
    who 以简略格式显示工作区内所有变量
    whos 以复杂格式显示工作区内所有变量

使用MATLAB进行数字运算

我们可以使用MATLAB计算数学表达式。

  • MATLAB常见的数学运算符有:+-*/^
  • 数学表达式被计算后,其值被存入变量ans
  • 运算的优先级规则:
    • 同等优先级下从左向右运算。
    • 优先级顺序(从高到低):
      1. 括号()
      2. 乘方^
      3. 乘除法*/
      4. 加减法+-

下面例子演示了数学表达式求值:

待求数学表达式 MATLAB命令
$( \cos\left(\sqrt{\frac{{\left(1+2+3+4\right)}^3}{5}}\right) )$ cos(sqrt((1+2+3+4)^3/5))
$(\sin\left(\sqrt{\pi}\right) + \ln\left(\tan\left(1\right)\right))$ sin(sqrt(pi))+log(tan(1))
$( 2^{3.5 \times 1.7} )$ 2^(3.5*1.7)
$(e^{\sin(10)} )$ exp(sin(10))

MATLAB内置的数学函数

  • MATLAB内置的算数运算函数
    • 基本运算:
      • 加: +,sum,cumsum
      • 减: -,diff
      • 乘: .*,*,prod,cumprod
      • 除: ./,.\,/,\
      • 乘方: .^,^
    • 取模运算: mod,rem,idivide,ceil,fix,floor,round
  • MATLAB内置的三角运算函数
    • 正弦: sin,sind,asin,asind,sinh,asinh
    • 余弦: cos,cosd,acos,acosd,cosh,acosh
    • 正切: tan,tand,atan,atand,atan2,atan2d,tanh,atanh
    • 余割: csc,cscd,acsc,acscd,csch,acsch
    • 正割: sec,secd,asec,asecd,sech,asech
    • 余切: cot,cotd,acot,acotd,coth,acoth
    • 斜边: hypot
    • 转换: deg2rad,rad2deg,cart2pol,cart2sph,pol2cart,sph2cart
  • MATLAB内置的指数对数函数: exp,expm1,log,log10,log1p,log2,nextpow2,nthroot,pow2,reallog,realpow,realsqrt,sqrt
  • MATLAB内置的复函数: abs,angle,complex,conj,cplxpair,i,imag,isreal,j,real,sign,unwrap

使用MATLAB进行矩阵运算

定义矩阵

向终端输入矩阵

在MATLAB中,可以使用[]将待输入的矩阵内容括起来,使用空格或逗号分隔行内变量,并使用分号分隔每一行。

下面是一些例子演示矩阵的定义方式和对应的结果:

MATLAB命令 得到的矩阵
A = [1 2 3 4] $\begin{bmatrix} 1 & 2 & 3 & 4 \end{bmatrix}$
A = [1; 2; 3; 4] $\begin{bmatrix} 1 \ 2 \ 3 \ 4 \end{bmatrix}$
A = [1 21 6; 5 17 9; 31 2 7] $\begin{bmatrix} 1 & 21 & 6 \ 5 & 17 & 9 \ 31 & 2 & 7 \end{bmatrix}$

使用冒号运算符创建向量

使用冒号运算符:可以创建一个向量,其语法如下:

冒号表达式 得到的结果
j:k $\begin{bmatrix} j & j+1 & j+2 & ... & j+m \end{bmatrix}$
j:i:k $\begin{bmatrix} j & j+i & j+2i & ... & j+m*i \end{bmatrix}$

下面是一些例子演示冒号运算符的使用:

MATLAB语句 得到的结果
1:5 $\begin{bmatrix} 1 & 2 & 3 & 4 & 5 \end{bmatrix}$
1:2:5 $\begin{bmatrix} 1 & 3 & 5 \end{bmatrix}$
[1:5; 2:3:15; -2:0.5:0] $\begin{bmatrix} 1 & 2 & 3 & 4 & 5 \ 2 & 5 & 8 & 11 & 14 \ -2 & -1.5 & -1 & -0.5 & 0 \end{bmatrix}$
'a':2:'z' 'acegikmoqsuwy'

定义特殊矩阵

以下命令可以定义一些特殊矩阵:

命令 得到的结果
eye(n) 一个 n × n 的单位矩阵
zeros(n1, n2) 一个 n1 × n2 的全零矩阵
ones(n1, n2) 一个 n1 × n2 的全一矩阵
diag(vector) 以向量 vector 中的元素作为对角线创建一个对角矩阵,其余元素为零

矩阵的索引

  • MATLAB中的矩阵是以列主序存储的,索引下标从1开始。

  • 矩阵有两种索引方式:按一维索引和按二维索引。对于一个一般的矩阵,其索引顺序如下:

    $$ \begin{bmatrix} 1 & 4 & 7 \ 2 & 5 & 8 \ 3 & 6 & 9 \end{bmatrix} $$

  • 矩阵的索引可以使用冒号 :,表示选取所有行或所有列。

  • 矩阵的索引可以是一个或两个向量,表示选中向量内的所有行或所有列。

下面是一些例子演示矩阵索引的规则:

原矩阵 索引 得到的结果
A = [1 2 3 4 5 6 7 8 9] A(8) 8
A = [1 2 3 4 5 6 7 8 9] A([1 3 5]) $\begin{bmatrix} 1 & 3 & 5 \end{bmatrix}$
A = [1 2 3 4 5 6 7 8 9] A([1 2; 3 4]) $\begin{bmatrix} 1 & 2 \ 5 & 6 \end{bmatrix}$
A = [1 2 3; 4 5 6; 7 8 9] A(3,2) 8
A = [1 2 3; 4 5 6; 7 8 9] A([1,2], :) $\begin{bmatrix} 1 & 2 & 3 \ 4 & 5 & 6 \end{bmatrix}$
A = [1 2 3; 4 5 6; 7 8 9] A([1 3], [1 2]) $\begin{bmatrix} 1 & 2 \ 7 & 8 \end{bmatrix}$

矩阵的操作

操作矩阵的运算符

以下是一些操作矩阵的常用运算符:

运算符 操作 形式 例子
+ 矩阵与向量相加 A+b $[6\ 3] + 2 = [8\ 5]$
- 矩阵与向量相减 A-b $[6\ 3] - 2 = [4\ 1]$
+ 矩阵与矩阵对应位置相加 A+B $[6\ 3] + [4\ 8] = [10\ 11]$
- 矩阵与矩阵对应位置相减 A-B $[6\ 3] - [4\ 8] = [2\ -5]$
* 矩阵与矩阵相乘 A*B $[6\ 3] \cdot [4\ 8]' = 48$
.* 矩阵与矩阵对应位置相乘 A.*B $[6\ 3] \cdot [4\ 8] = [24\ 24]$
/ 矩阵与矩阵右除(等价于A*inv(B) A/B $[6\ 3] / [4\ 8] = 0.6$
\ 矩阵与矩阵左除(等价于inv(A)*B A\B $[6\ 3] \backslash [4\ 8] = [0.06667\ 1.3333;\ 0\ 0]$
./ 矩阵与矩阵对应位置右除 A./B $[6\ 3] ./ [4\ 8] = [1.5\ 0.375]$
.\ 矩阵与矩阵对应位置左除 A.\B $[6\ 3] .\ [4\ 8] = [0.6667\ 2.6667]$
^ 矩阵与向量乘方 A^b $[1\ 2;\ 3\ 4]^3 = [37\ 54;\ 81\ 118]$
.^ 矩阵与矩阵对应位置乘方 A.^B $[1\ 2;\ 3\ 4].^[1\ 2;\ 3\ 4] = [1\ 4;\ 27\ 256]$

操作矩阵的函数

下面是一些操作矩阵的常用函数:

  • max(A, [], dim): 获取矩阵 A 的 dim 维度上的最大值;
  • min(A, [], dim): 获取矩阵 A 的 dim 维度上的最小值;
  • sum(A, dim): 获取矩阵 A 的 dim 维度上的和;
  • mean(A, dim): 获取矩阵 A 的 dim 维度上的平均值;
  • sort(A, dim, direction): 根据 dim 维度对矩阵 A 进行排序,direction 表示排序的顺序;
  • sortrows(A, column): 对矩阵 A 根据每行的第 column 个元素进行升序排序;
  • size(A, dim): 获取矩阵 A 的 dim 维度上的大小;
  • find(A, n): 获取矩阵 A 前 n 个非零元素的索引。

对于上述函数,除第一个参数外,其他参数都是可选的。

标签:begin,end,变量,矩阵,MATLAB,bmatrix,运算
From: https://blog.51cto.com/u_16189732/7474214

相关文章

  • DAY005_异或运算
    运算规则二进制:相同为0相异为1十进制:相同为0任何数字和0异或都是它本身不利用额外变量交换两个数数组中一种数字出现了奇数次,其他数都出现了偶数次,怎么得到这个出现了奇数次的数将所有的数异或得到的结果就是这个期望的数字异或可以使用交换律,所有出现了偶数次的数字异......
  • 数据分享|MATLAB、R基于Copula方法和k-means聚类的股票选择研究上证A股数据|附代码数
    全文链接:http://tecdat.cn/?p=31733最近我们被客户要求撰写关于Copula的研究报告,包括一些图形和统计输出。Copula方法是测度金融市场间尾部相关性比较有效的方法,而且可用于研究非正态、非线性以及尾部非对称等较复杂的相依特征关系因此,Copula方法开始逐渐代替多元GARCH模型的相......
  • 【理论优化算法】基于理论和优化算法求解单目标优化问题附matlab代码
    ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。......
  • 【雷电附着算法】基于雷电附着优化算法LAPO求解单目标优化问题附matlab代码
    ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。......
  • 【语音处理】语音信号特技处理(延时、混响、滤波)附Matlab源码
    ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。......
  • 位运算总结
    位运算总结......
  • 运算符初学习
    运算符(学习后慢慢补充)算数运算符:+,-,*,/,%(取余),--(?)赋值运算符:=关系运算符:>,<,>=,<=,==,!=,instanceof(?)用于判断是否相等,在if句型中会用到以下尚未了解逻辑运算符&&(与),||(或),!(非你即我)位运算符&,|,^,~,>>,<<,>>>条件运算符?:扩展赋值运算符+=,-=,*=,/=备注使用除号要......
  • Nginx中实现逻辑运算
    nginx的配置中不支持if条件的逻辑与&&逻辑或||运算,而且不支持if的嵌套语法,否则会报下面的错误:nginx:[emerg]invalidcondition。我们可以用变量的方式来间接实现。要实现的语句:if($arg_unitid=42012&&$uri~/thumb/){echo"www.ttlsa.com";}如果按照......
  • m基于深度学习网络的动物识别系统matlab仿真,带GUI界面
    1.算法仿真效果matlab2022a仿真结果如下:2.算法涉及理论知识概要基于深度学习网络的动物识别系统是一种利用深度学习技术来进行动物识别和定位的系统。这种系统的工作原理是,通过使用深度神经网络对图像或视频进行分析,以识别出其中的动物并确定其位置。深度学习网络,特别是卷......
  • 关于异或运算的一道题
      和白球的数量无关,  黑球偶数个时,概率0%。   黑球奇数个时,概率100%。  设白球是0,黑球是1    0 0 ——> 0          1 1——> 0   0 1 ——> 1        ......