数组
创建数组
方括号直接定义
见第一篇文章1.1
通过冒号
X=A:step:B
其中A是一维数组第一个元素,step是相邻两元素差值,直到最后一个元素和B的差的绝对值小于等于step的绝对值为止。
不指定step时,系统默认step=1.
logspace函数
y=logspace(a,b,n)
logspace,顾名思义可以理解为对数空间。该函数会创建行向量y,第一个元素为10a,最后一个元素为10b,形成元素总数为n的等比数列.
此函数也可写作y=logspace(a,b),默认n为50.
linspace函数
y=linspace(a,b,n)
linspace,顾名思义可以理解为线性空间。该函数会创建行向量y,第一个元素为a,最后一个元素为b,形成元素总数为n的等差数列.
此函数也可写作y=linspace(a,b),默认n为100.
注:当n<2时,函数返回b数值.
数组运算
数值运算
加减运算
维度相同的数组对应位置元素相加减。
乘法运算
|
|
维度相同的数组对应位置元素相乘。
注意此处有一个点运算符,与乘号连用,以区别于以下向量乘法。
除法运算
数组与常数相除
数组中每一个元素除以该常数
数组与常数相除可不加点运算符,含义一致。
左除与右除
|
|
左除与右除记号很好区分,就看斜线上端侧向哪边。左除在键盘backspace键下方。我们日常使用的都是右除。
左除与右除的概念,即到底是谁除谁,可以这样看。谁在上方谁就是分子。比如左除‘ A.\B ’,可看作B在上方,所以是用B中元素除以A中对应位置的元素。
乘方运算
数组中每一个元素进行乘方,或者某数字做数组中每一个元素的次方运算。
关系运算
< 小于
<= 小于等于
> 大于
>= 大于等于
== 恒等于
~= 不等于
逻辑运算
& 与
| 或
~ 非
逻辑运算对单个元素来说,非零为真,逻辑运算结果为1.
矩阵
创建矩阵
第一篇文章1.1以及第二篇文章1.1,都有关于矩阵创建的一些常用函数。这里我们了解几个颇有特色的矩阵,它们在系统测试、数学模拟等方面有着重要作用。
希尔伯特(Hilbert)矩阵
希尔伯特矩阵也称H阵,其元素为Hij=1/(i+j-1).
希尔伯特矩阵与其逆矩阵都是对称矩阵,文章封面的图片就是用灰阶图表示的希尔伯特矩阵。
托普利兹(Toeplitz)矩阵
由两个向量定义,一个行向量,一个列向量。
命令toeplitz(k,r)
生成非对称托普利兹矩阵,第一列为k,第一行为r(k,r均为向量).其余元素等于该元素左上角元素的值.
0~1均匀分布的随机矩阵
r=rand(n) 产生n×n的矩阵,其元素均为0~1间均匀分布的样本.
r=rand(m,n) 产生n×m的矩阵,其元素性质同上.
更高维度的矩阵依次增加括号中数字个数即可。
本例产生了一个3×3×3的立方矩阵,矩阵中的元素像三阶魔方一样排列在三维空间中.
标准正态分布随机矩阵
r=randn(n)
与上一种矩阵的区别就是总体分布由0~1的均匀分布,变为标准正态分布。命令即‘rand’后多加一个字母‘n’.
魔方矩阵
魔方矩阵每行、列、对角线上元素和相等。
帕斯卡矩阵
A=pascal(n) 返回n阶对称正定Pascal矩阵.
范德蒙德(Vandermonde)矩阵
A=vander(v) 矩阵的列是向量v的幂,即A(i,j)=v(n-j)(i)
编辑矩阵
合并矩阵
见第一篇文章1.2.3
删除行列
|
|
重构矩阵
|
|
矩阵元素运算
加减运算
相同维度的矩阵对应元素(或常数)相加(减).
乘法运算
数乘
矩阵相乘
|
|
除法运算
|
|
幂运算
|
|
元素查找:find函数
|
|
元素排序:sort函数
按照升序排列,排列后矩阵维数与原矩阵相同。
B=sort(A) 对矩阵A进行升序排列.
B=sort(A,dim) 当dim=1时,按列排序;当dim=2时,按行排列。
B=sort(…,mode) mode表示可指定排序方式,‘ascend’为升序,‘descend’为降序。
元素求和:sum与cumsum函数
B=sum(A) 按列求和
B=sum(A,dim) 当dim=1,按列求和;当dim=2,按行求和。
B=cumsum(A,dim) 与sum函数不同的是,cumsum函数返回一个矩阵,每个元素的值为从该列(行)第一个元素到自己的和,我称它为累计和。
元素求积:prod与cumprod函数
函数调用方式与求和一样,不多赘述。
元素的差分:diff函数
差分:Δf ( xk ) = f ( xk+1 ) - f ( xk )
在矩阵中即后项减前项。
Y=diff(X,n,dim) 计算矩阵在给定维数dim上元素的n阶差分。同样,当dim=1,按列计算;当dim=2,按行计算。