本文是参考书籍《MATLAB R2020a完全自学一本通 》自己整理的一些笔记和一些练习,希望会给大家带来一些帮助。
目录
1、数组创建与运算
1.1数组的创建
1.2数组的运算
1.2.1 算术运算
1.2.2关系运算与逻辑运算
2、矩阵的构造与操作
2.1矩阵的构造
2.2矩阵的操作
2.3矩阵索引
2.4矩阵信息的获取
2.4.1矩阵的结构
2.4.2矩阵大小
2.4.3矩阵的内部元素类型信息获取
2.5矩阵分析
2.6特征值和特征向量
2.7稀疏矩阵
2.7.1稀疏矩阵的创建
2.7.2稀疏矩阵的信息获取
2.7.3特殊稀疏矩阵的创建
1、数组创建与运算
1.1数组的创建
-
在 MATLAB 中一般使用方括号 “[ ]” 、逗号 “,” 、空格和分号 “;” 来创建数组,数组中同一行的元素使用逗 号或空格进行分隔,不同行之间用分号进行分隔;
-
可以通过冒号创建一维数组;
-
通过 logspace() 函数创建一维数组;
-
通过 linspace() 函数创建一维数组;
1.2数组的运算
1.2.1 算术运算
乘方格式“.^”实现数组的乘方运算。数组的乘方运算包括数组间的乘方运算、数组与某个具体数的乘方运算,以及常数与数组的乘方运算。
函数dot()可实现数组的点积运算。
1.2.2关系运算与逻辑运算
MATLAB提供的关系运算符与逻辑运算符可参考上篇所述。
2、矩阵的构造与操作
2.1矩阵的构造
矩阵的构造方式除了通过直接对变量赋值以外另外一种及可以通过MATLAB所提供的构造特殊矩阵的函数。
名称 | 功能 | 名称 | 功能 |
ones(n) | 构造n x n的全1阵 | ones(m,n,...,p) | 构造一个mxnx...p的1矩阵 |
ones(size(A)) | 构造和A同样大小的全1阵 | ||
zeros(n) | 构造n x n的零矩阵 | eye(n) | 构造n x n的单位阵 |
magic(n) | 构造n x n的矩阵,其中每一行、每一列元素之和都相等 | rand(n) | 构造n x n的矩阵,其元素为0~1之间均匀分布的随机数 |
randn(n) | 构造n x n的矩阵,其元素为零均值、单位方差的正态分布的随机数 | diag(x) | 构造n x n的方阵,主对角线元素取自向量x,其余元素为0 |
diag(A,k) | 构造由A第k条主对角线元素组成的列向量 k=0为对角线元素,k<0,为下第k条对角线;k>0,为上第k条对角线 |
||
triu(A) | 构造一个和A大小相同的上三角矩阵 | triu(A,k) | 构造一个和A大小相同的上三角矩阵,其第k条及其以上的元素为A中相应的元素 |
tril(A) | 构造一个和A大小相同的下三角矩阵 | tril(A,k) | 构造一个和A大小相同的上三角矩阵,其第k条及其以下的元素为A中相应的元素 |
2.2矩阵的操作
函数名称 | 函数功能 |
fliplr(A) | 矩阵每一行均进行逆序排列 |
flipud(A) | 矩阵每一列均进行逆序排列 |
flipdim(A,dim) | 生成一个在 dim维矩阵A内的元素交换位置的多维矩阵 |
rot90(A) | 生成一个由A旋转90度的新矩阵 |
rot90(A,k) | 生成一个由A旋转90xk度的新矩阵 |
reshape(A,m,n) | 生成一个mxnx...xp维矩阵,其元素以线性索引的方式从A中获得 |
sort(A,x) | 对矩阵A进行升序排列并返回排列后的矩阵,当x=1,对每一列进行排序;当x=2时对每一行进行排序 |
sort(A,x,mode) | mode= ascend时进行升序排列 mode=descend时进行降序排列 |
cat(dim,A,B) | 将A和B组合成一个dim维的多维矩阵(注意矩阵的形状) |
2.3矩阵索引
矩阵索引表达式 | 函数功能 |
A(:,j) | 返回矩阵A中第j列的元素 |
A(i,:) |
返回矩阵A中第i行的元素 |
A(:,j:k) | 返回矩阵A中第j列到第k列的元素 |
A(i:k,:) | 返回矩阵A中第i行到第k行的元素 |
A(i:k,j:k) | 返回由二维矩阵A中的第i行到第k行行向量和第j列到第1列列向量的交集组成的子矩阵 |
A(:) | 将矩阵A中的每列合并成一个长的列向量 |
A([i1,i2,...],[j1,j2,...]) | 返回矩阵A中第i1行、第i2行等和第j1列、第j2列等的元素 |
2.4矩阵信息的获取
2.4.1矩阵的结构
函数名称 | 函数功能 |
isempty(A) | 检测矩阵是否为空 |
isscalar(A) | 检测矩阵是否为单元素标量 |
isvector(A) | 检测矩阵是否为只有一列或一行的一维向量 |
issparse(A) | 检测矩阵是否为稀疏矩阵 |
2.4.2矩阵大小
函数 | 函数功能 |
n=ndims(A) | 获取矩阵的维数 |
[m,n] = size(A) | 获取矩阵各维的长度 |
n= length(A) | 获取矩阵最长维的维数 |
n = numel(A) | 获取矩阵元素的个数 |
2.4.3矩阵的内部元素类型信息获取
函数名称 | 函数功能 |
isnumeric(A) | 检测矩阵A元素是否为数值型变量 |
isreal(A) | 检测矩阵A元素是否为实数数值型变量 |
isfloat(A) | 检测矩阵A元素是否为浮点数值型变量 |
isinteger(A) | 检测矩阵A元素是否为整数型变量 |
islogical(A) | 检测矩阵A元素是否为逻辑型变量 |
ischar(A) | 检测矩阵A元素是否为字符型变量 |
isstruct(A) | 检测矩阵A元素是否为字符型变量 |
iscell(A) | 检测矩阵A元素是否为元胞型变量 |
iscellstr(A) | 检测矩阵A元素是否为元胞型变量 |
2.5矩阵分析
函数名称 | 函数功能 |
norm(x,p) |
对任意大于
1
的
p
值,返回向量或者矩阵
的
p
阶范数。
|
normest(A)
normest(A,tol)
|
估计矩阵A的2阶范数(当一个近似的范数值满足要求时) 使用tol作为允许的相对误差。 |
rank(A) | 矩阵A的秩,即求对角元素 |
det(A) | 矩阵A的行列式 |
trace | 矩阵的迹(矩阵对角元素之和) |
null(A) | 矩阵的0空间 |
orth(A) | 正交化空间 |
rref(A) | 约化行阶梯形式 |
subspace | 求两个矩阵空间的角度 |
2.6特征值和特征向量
2.7稀疏矩阵
2.7.1稀疏矩阵的创建
函数用法 | 功能 |
sparse(A) | 由非零元素和下标创建稀疏矩阵A。如果A已是一个稀疏矩阵,则返回A本身 |
sparse(m,n) | 生成一个mxn的所有元素都是0的稀疏矩阵 |
sparse(u,v,a) | 生成大小为max(u)×max(v)的稀疏矩阵。其中u和v是整数向量(向量长度必须相同),a为实数或复数向量 |
sparse(u,v,a,m,n) | 生成一个mxn的稀疏矩阵,(ui,vi)对应值ai。向量u、v和 a长度必须相同 |
spconvert(D) | 生成一个稀疏矩阵D。D共有3列,第1列为行下标,第2列为列下标,最后一列为元素值 |
full(S) | 将稀疏矩阵S转换成一个满矩阵 |
文章来源:https://www.toymoban.com/news/detail-724599.html
文章来源地址https://www.toymoban.com/news/detail-724599.html
2.7.2稀疏矩阵的信息获取
函数 | 函数功能 |
nnz(B) | 查看非零元素的个数 |
nonzeros(B) | 查看非零元素值 |
nzmax(B) | 查看稀疏矩阵存储空间 |
spy(B) |
图形化显示非零元素的分布
|
nnz(S)/prod(size(S))
|
计算稀疏矩阵的非零元素密度 |
2.7.3特殊稀疏矩阵的创建
函数 | 函数功能 |
speye(m,n) | 创建单位稀疏矩阵 |
spones(B) | 创建非零元素为1的稀疏矩阵 |
sprand(B) | 创建非零元素为均匀分布的随机数的稀疏矩阵 |
sprandn(B) | 创建非零元素为高斯分布的随机数的稀疏矩阵 |
sprandsym(B) | 创建非零元素为高斯分布的随机数的对称稀疏矩阵 |
sprandsym(B) | 创建对角稀疏矩阵 |
sprandsym(B) | 为稀疏矩阵分配空间 |
到了这里,关于MATLAB基础知识之数组与矩阵的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!