一
数组的创建
创建方法1
利用[],’,’,’ ‘,’;’创建
逗号和空格用于在同一行中分隔元素,分号用于分隔不同行
input
1 | A=[1,2,3,4;1,2,5,6] |
output
1 |
|
需要注意的是两行的维度必须要一致
创建方法2
冒号(:)
input
1 | A=1:3 |
output
1 | A = |
两个冒号中间的相当于是间隔的宽度,两边的是数组的范围
创建方法3
logspace(a,b,n)
input
1 | A=logspace(1,2,23) |
output
1 | 1 至 11 列 |
形成的是以10^1至10^2为范围的总数为23的等比数列,不写数字23默认生成50个元素
创建方法4
linspace(a,b,n)
形成第一个元素为a,最后一个元素为b,形成的总数为n的等差向量,n的默认值为100
input
1 | A=linspace(1,12,6) |
output
1 | A = |
创建方法5
希尔伯特矩阵
元素值为H=1/(i+j-1)
intput
1 | hilb(3) |
output
1 | ans = |
创建方法6
托普利兹矩阵
生成右上角等于右下角的矩阵
需要注意的是两个的出发点都必须是一样的,否则会报错
input
1 | toeplitz(2:6,2:2:9) |
output
1 | 2 4 6 8 |
创建方法7
随机矩阵
产生0~1均匀分布的矩阵
rand(n,m,p)维度数为nmp,维度数根据自己的喜好往上或者往下减
rand(size(A))生成和A一样维度的矩阵
randn正态分布矩阵
创建方法8
魔方矩阵magic(n)
每行每列的对角线上的元素的和都相等
input
1 | magic(3) |
output
1 |
|
创建方法8
帕斯卡矩阵pascal(n)
就是斜向的杨辉三角
input
1 | pascal(3) |
output
1 | ans = |
创建方法8
范德蒙矩阵vander(v)v是向量
每列从右往左是向量v的幂
input
1 | vander(1:1:5) |
output
1 |
|
数组的运算
算数运算
数组的算数运算就是+ - * /,要求两个数组的维度相同才能进行运算,就是直接对所处的相同位置的数字直接进行运算,没什么特别的,就是要注意在写法方面’‘变成了’.‘,’/‘变成了’./‘。’./‘表示前面的数组除后面的数组,’.'表示后面的数组除前面的数组。
dot计算两个矩阵的点积
input
1 | A=dot(A,B); |
sum计算数组元素的和
input
1 | A=sum(A.*B) |
解释:矩阵A乘B后返回一个矩阵,计算这个矩阵所有元素的和
关系运算
< <= > >= == ~=(不等于)
比较两个矩阵的每一个元素返回1/0的矩阵
二
改变矩阵的大小
合并矩阵
使用[]
假设矩阵A,B
[A,B]:横向合并
[A;B]:纵向合并
需要注意的是合并方向的维度数必须相同
重构矩阵
在函数后面加’能将nm变成mn的矩阵
删除矩阵
删除行
A(n,:)=[]
删除列
A(:,m)=[]
input
1 | A=rand(5) |
output
1 | A = |
矩阵元素的查找
find(x)
返回值是这些元素的单下标
[i,j]=find(x)
返回值是这些元素的双下标
矩阵元素的排序
sort(A,dim,mode),dim是选择是行排序还是纵向排序,取值为2和1。mode决定是升序还是降序取值为’ascend’,’descend’
矩阵元素求和
sum(A,dim)dim选择是行还是列。
input
1 | A=toeplitz(2:5,2:2:6) |
output
1 | ans = |
cumsum(A,dim)用法和sum一致,以列为例,它返回的是当前位置上的所有元素的和
input
1 | cumsum(A) |
output
1 | ans = |
矩阵元素求积
prod(A,dim)
cumprod(A,dim)
效果和矩阵元素求和差不多
矩阵元素的差分
diff(A,n,dim)计算行还是列的n阶差分
inputis
1 | diff(A,1) |
output
1 | ans = |
本文作者: jiangyuhao
本文链接: http://example.com/2022/04/20/%E6%95%B0%E7%BB%84%E4%B8%8E%E7%9F%A9%E9%98%B5/
版权声明: 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!