创建与组合
所有用户输入的数据都会以矩阵或者多维数组的方式存储在工作区中。
whos A
可以查看变量在工作区中的存储方式。
创建矩阵最简单的方式就是用方括号[]。
A=[12 43 93 -8 22]
也可以通过初值:步长:终值的方式创立向量。
a=2:2:20;
默认步长为1,步长可以是小数和负数。
创建特殊矩阵
zeros --所有元素都为0
compan()–伴随矩阵
diag–对角矩阵
ones–所有元素都为1
eye–生成单位矩阵
magic–生成魔方矩阵
pascal–生成PASCAL矩阵
rand–随机生成均匀分布的矩阵
randn–随机生成正态分布的矩阵
randperm–随机生成一个由指定整数元素随机分布构成的矩阵。
randperm(7) 结果为1:7构成的随机数列,但每次结果不固定,若希望固定,可以
rand(‘state’,0)
矩阵合并
直接用分号连接两个矩阵即可,如
c=[a;b]
但是要保持一个方向的“齐平”。
寻访和赋值
标识
三种方式:全下标、单下标、逻辑1标识
- A(3,5)
- c=(b-1)m+a :表示第a行,第b列。 mn矩阵
sub2ind: 根据全下标换算单下标
ind2sub:反之
- 寻找矩阵中大于或者小于某个值的元素的问题。
(1,:)用冒号代表一整行或一整列
矩阵的赋值
直接给到某一个标识符的元素即可
进行数组运算的常用函数
即数组内的每一个元素都按函数进行变化处理。
查询矩阵信息
length:最长一维的长度
ndims:矩阵的位数
numel:矩阵元素个数
size:各维的长度
数据类型查询
数据结构查询
isempty:
issparse:是否稀疏矩阵
isvector:
isscalar:查询输入矩阵是否是1×1标量
数组运算和矩阵运算
一个点乘,一个差乘
矩阵重构
扩展和删除
1.扩展:往里加元素自动扩展
2.删除:指定某一行、某一列为空矩阵。
A(:,1)=[]
重构
通过函数完成重构。
块操作
C=blkdiag(A,B,…) 连接成对角矩阵
kron(A,B) 把A中每个元素×到B矩阵中。
稀疏矩阵(没学过,待补充)
多维数组
创建
- 通过全下标方式创建
- 由若干二维数组合并
- 由ones\zeros\rand\randn 等直接创建特殊多维数组
- 借助cat\repmat\reshape等函数构建多维数组:
cat(预扩展维,矩阵1,矩阵2,…)
repmat([1,2;3,4;5,6],[1,2,3])
reshape(1:60,5,4,3)
寻访和重构
寻访与二维数组类似,单下标的方式需要注意一下
重构
permute:广义非共轭转置
flipdim:以指定维交换对称位置上的元素
ipermute:广义反转置
shiftdim:维移动函数
多项式
1.表达式:降幂系数:p=[1 0 -2 -5];
2.多项式行向量的创建方法:
多项式运算函数
[i,j]=find(A),该函数查找矩阵A的非零元素
sort(A,2,‘descend’) 按行降序排序