MATLAB基础知识之数组与矩阵

这篇具有很好参考价值的文章主要介绍了MATLAB基础知识之数组与矩阵。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本文是参考书籍《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() 函数创建一维数组;
用法:y=logspace(a,b,n) :该函数创建行向量 y ,第一个元素为 10 a ,最后一个元素为 10 b ,形成总数为 n 个元素的等比数列。
  • 通过 linspace() 函数创建一维数组;
用法:y=linspace(a,b,n):该函数创建行向量 y ,第一个元素为 a ,最后一个元素为 b ,形成总数为 n 个元素的线性间隔向量

1.2数组的运算

1.2.1 算术运算

      数组的运算是从数组的单个元素出发,针对每个元素进行的运算。在 MATLAB 中,一维数组的算术运 算包括加、减、乘、左除、右除和乘方( 两个数组的维数须相同 )。
     数组的乘除运算:通过格式 “.*” “./” 可实现数组的乘除运算。
乘法:数组 A B 的维数相同,运算为数组对应元素 相乘 ,计算结果与 A B 是相同维数的数组。
除法:数组 A B 的维数相同,运算为数组对应元素 相除 ,计算结果与 A B 是相同维数的数组。
matlab 矩阵,矩阵,数据结构,matlab,学习

    乘方格式“.^”实现数组的乘方运算。数组的乘方运算包括数组间的乘方运算、数组与某个具体数的乘方运算,以及常数与数组的乘方运算。      matlab 矩阵,矩阵,数据结构,matlab,学习

函数dot()可实现数组的点积运算。

matlab 矩阵,矩阵,数据结构,matlab,学习

 1.2.2关系运算与逻辑运算

      MATLAB提供的关系运算符与逻辑运算符可参考上篇所述。

关系运算的运算法则如下:
当两个比较量是标量时,直接比较两个数的大小。若关系成立,则返回的结果为 1 ,否则为 0
当两个比较量是维数相等的数组时,逐一比较两个数组相同位置的元素,并给出比较结果。最终的关系运算结果是一个与参 与比较的数组维数相同的数组,其组成元素为0 1
逻辑运算的运算法则如 下:
如果是非零元素则为真,用 1 表示;如果是零元素则为假,用 0 表示。
当两个比较量是维数相等的数组时,逐一比较两个数组相同位置的元素,并给出比较结果。最终的逻辑运算结果是一个与参与比较的数组维数相同的数组,其组成元素为0 1
在进行与运算(a&b)时, a b 全为非零,则为真,运算结果为 1 。在进行或运算(a|b)时,只要 a b 有一个为非零,则运算 结果为1 。在进行非运算(~a )时,若 a 0 ,则运算结果为 1 ;若 a 为非零,则运算结果为 0

 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矩阵的操作

      矩阵的操作主要有旋转矩阵、改变矩阵维度、删除矩 阵元素等。MATLAB 中提供的具体此类函数如下表:
矩阵旋转与维度变化相关函数
函数名称 函数功能
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矩阵索引

     在 MATLAB 中,二维数组元素的数字访问可以分为双下标索引和单下标索引。双下标索引是通过一个 二元数组对来对应元素在矩阵中的行列位置,例如A (2,3) 表示矩阵 A 中第 2 行第 3 列的元素。单下标索引的方式是采用列元素优先的原则,对m n 列的矩阵按列排序进行重组,成为一维数组,再取新的一维数组中的 元素位置对应的值作为元素在原矩阵中的单下标。例如对于4×4 的矩阵, A (6) 表示矩阵 A 中第 2 行第 2 列的元 素。
常用索引表达式
矩阵索引表达式 函数功能
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列等的元素
单下标索引值和双下标索引值之间,可以通过 MATLAB 内部函数进行转换即
matlab 矩阵,矩阵,数据结构,matlab,学习

 2.4矩阵信息的获取

      矩阵的信息主要包括矩阵结构、矩阵大小、矩阵维度、矩阵的数据类型及矩阵占用的内存等

2.4.1矩阵的结构

矩阵结构函数
函数名称 函数功能
isempty(A) 检测矩阵是否为空
isscalar(A) 检测矩阵是否为单元素标量
isvector(A) 检测矩阵是否为只有一列或一行的一维向量
issparse(A) 检测矩阵是否为稀疏矩阵
     这类函数的返回值是逻辑类型的数据。返回值为 “1” 表示该矩阵是某一特定类型的矩阵;返回值为 “0” 表 示该矩阵不是该特定类型的矩阵。

2.4.2矩阵大小

矩阵大小信息获取
函数 函数功能
n=ndims(A) 获取矩阵的维数
[m,n] = size(A) 获取矩阵各维的长度
n= length(A) 获取矩阵最长维的维数
n = numel(A) 获取矩阵元素的个数

2.4.3矩阵的内部元素类型信息获取

       矩阵作为 MATLAB 的内部数据存储和运算结构,其元素可以是各种各样的数据类型 , 对应不同数据类型的元素,可以是数值、字符、结构体等。MATLAB 中提供了一系列关于数据类型的测试函数。
矩阵数据类型测试函数
函数名称 函数功能
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矩阵分析

    在 MATLAB 中,用在函数后面加撇号 “ ' ” 来表示矩阵的转置。
    MATLAB 中函数 find() 的作用是进行矩阵元素的查找,它通常与关系函数和逻辑运算相结合。其调用格式如下:
● ind=find(X) :该函数查找矩阵 X 中的非零元素,函数返回这些元素的单下标。
● ind=find(X=0) :该函数查找矩阵 X 中的零元素,函数返回这些元素的单下标。
● [row,col]=find(X,...) :该函数查找矩阵 X 中的非零元素,函数返回这些元素的双下标 i j
    MATLAB 中函数 sum()cumsum() 的作用是对矩阵的元素求和。其调用格式如下:
● B=sum(A) :该函数对矩阵 A 的元素求和,返回由矩阵 A 各列元素的和组成的向量。
● B=sum(A,dim) :该函数返回在给定的维数 dim 上元素的和。当 dim=1 时,计算矩阵 A 各列元素的        和;当 dim=2 时,计算矩阵 A 各 行元素的和。
    MATLAB 中函数 prod()cumprod() 的作用是对矩阵的元素求积。其调用格式如下:
● B=prod(A) :该函数对矩阵 A 的元素求积,返回由矩阵 A 各列元素的积组成的向量。
● B=prod(A,dim) :该函数返回在给定的维数 dim 上元素的积。当 dim=1 时,计算矩阵 A 各列元素的积;当 dim=2 时,计算矩阵 A 各行元素的积。
    MATLAB 中函数 diff() 的作用是计算矩阵元素的差分。其调用格式如下:
● Y=diff(X,n,dim):计算矩阵在给定的维数dim上元素的n阶差分。当dim=1时,计算矩阵各列元素的差分;当dim=2时,计算矩 阵各行元素的差分。
矩阵分析函数
函数名称 函数功能
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特征值和特征向量

   特征值和特征向量的定义学过线代的都清楚,这里不过多赘述,下面简单介绍一些相关函数。
eig(A):求包含矩阵A的特征值的向量。
[X,D]=eig(A): 产生一个矩阵 A 的特征值在对角线上的对角矩阵 D 和矩阵 X ,它们的列是相应的特征向量,满足 AX=XD 。为了得到有更好条件特征值的矩阵,要进行相似变换。
[T,B]=balance(A): 找到一个相似变换矩阵 T 和矩阵 B ,使得它们满足 B=T-A∙T
eig(A,'nobalance'): 不经过平衡处理求得矩阵 A 的特征值和特征向量,也就是不进行平衡相似变换。
eigs(A): 返回一个由矩阵 A 的部分特征值组成的向量,和 eig 命令一样,但是不返回全部的特征值。如果不带有参量,则计算
出最大的特征值。当计算所有特征值时,如果矩阵 A 的秩不小于 6 ,则计算出 6 个特征值。
eigs(f,n): 求出矩阵 A 的部分特征值。在使用一个矩阵列的线性运算符时,字符串 f 中包含的是 M 文件的文件名, n 指定问题的 阶次。用这种方法来求特征值比开始就用运算符来求要快。
eigs(A,B,k,sigma): 求矩阵 A 的部分特征值,矩阵 B 的大小和A相同;如果没有给出B=eye(size(A)),那么k就是要计算的特征值 的个数;如果k没有给出,就用小于6 的数或者A的秩。
   变量sigma是一个实数或复数的移位参数,或者下列文本字符串中的一个,文本字符串指明的是特征值的属性:“lm”为最大的特征值,“sm”为最小的特征值,“lr”为最大的实数部分,“sr”为最小的实数部 分,“be”为同时求得最大和最小的实数部分。
condeig(A) :返回一个由矩阵 A 的特征值条件数组成的向量。
[V,D,s]=condeig(A) :返回 [V,D]=eig(A) s=condeig(A)

2.7稀疏矩阵

       在许多问题中涉及到的矩阵含有大量的0元素,其被称为稀疏矩阵。MATLAB中考虑到矩阵的稀疏性,在对它进行运算时有特殊的命令。为减少存储空间稀疏矩阵存储时只对非零元素下标和值进行储存。

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转换成一个满矩阵

matlab 矩阵,矩阵,数据结构,matlab,学习

 matlab 矩阵,矩阵,数据结构,matlab,学习

matlab 矩阵,矩阵,数据结构,matlab,学习文章来源地址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模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【一】MATLAB基础知识

    1 数值数据类型的分类 整型 无符号整数:无符号8位整数、无符号16位整数、无符号32位整数、 无符号64位整数。 带符号整数:带符号8位整数、带符号16位整数、带符号32位整数、 带符号64位整数。 无符号8位整数数据范围:00000000-11111111(0-2的8次方-1)。 带符号8位整数数据范

    2023年04月22日
    浏览(35)
  • matlab基础知识

    本文参考了matlab数学建模一书 logspace(x1,x2,n)函数产生一组等比数列,第一个数是 1 0 x 1 10^{x_1} 1 0 x 1 ​ ,最后一个数是 1 0 x 2 10^{x_2} 1 0 x 2 ​ ,n是n个元素,默认是50;eg: 这里第一个数是 1 0 0 = 1 10^{0}=1 1 0 0 = 1 ,最后一个数是 1 0 lg ⁡ 32 = 32 10^{lg 32}=32 1 0 l g 3 2 = 3 2 ,一共

    2023年04月23日
    浏览(37)
  • Matlab基础知识汇总(小白速成)

    1.矩阵运算符 运算 符号 说明 具体表现实现 转置 A.\\\' 矩阵转置 共轭转置 A\\\' 复矩阵共轭转置,当A为实数矩阵时等价于A.\\\' 加减 A+B、A-B 矩阵元素之间相互进行加减 数与矩阵加减 K+A、K-A 数与矩阵的加减操作 数乘以矩阵 k*A 数对矩阵中的每个元素进行相乘 矩阵相乘 A * B A.*B 乘法运

    2024年02月08日
    浏览(36)
  • 【数据结构】—— 队列基础知识以及数组模拟队列的分析、演示及优化

    ❤️一名热爱Java的大一学生,希望与各位大佬共同学习进步❤️ 🧑个人主页:@周小末天天开心 各位大佬的点赞👍 收藏⭐ 关注✅,是本人学习的最大动力 感谢! 📕该篇文章收录专栏—数据结构 目录 什么是队列? 数组模拟队列 分析 存入队列的步骤 使用数组模拟队列—

    2024年01月19日
    浏览(56)
  • MATLAB基础知识——范数求解函数norm

    矩阵或向量的范数用来度量矩阵或向量在某种意义下的长度。 基于MATLAB语言,对应于向量和矩阵分别存在以下三种常用的范数,分别为: 1范数(L1范数),2范数(L2范数),∞范数(L∞范数)。 向量以及矩阵的范数 norm(V)或者norm(V,2): 用来计算向量(矩阵)V的2范数。 norm(V,1

    2024年02月16日
    浏览(50)
  • 快速上手MATLAB:科研、工程、数据分析,MATLAB入门(上)教你基础知识!+分享MATLAB完全学习手册资料(视频+课件+代码

    1、《MATLAB完全学习手册(视频+课件+代码)》 2、《MATLAB入门》 3、《详解MATLAB在科学计算中的应用》 4、《案例二 MATLAB与Excel交互》 5、《MATLAB初学者教程 MATLAB编程-菜鸟入门(清晰版)》 6、《MATLAB常用函数参考 MATLAB函数汇总 精通MATLAB》 7、等等。。。。 编程语言基础:M

    2024年02月06日
    浏览(57)
  • 快速上手MATLAB:科研、工程、数据分析,MATLAB入门(下)教你基础知识!分享《MATLAB初学者教程 MATLAB编程-菜鸟入门(清晰版)》

    1、《MATLAB完全学习手册(视频+课件+代码)》 2、《MATLAB入门》 3、《详解MATLAB在科学计算中的应用》 4、《案例二 MATLAB与Excel交互》 5、《MATLAB初学者教程 MATLAB编程-菜鸟入门(清晰版)》 6、《MATLAB常用函数参考 MATLAB函数汇总 精通MATLAB》 7、等等。。。。 前两天,我们在(

    2024年02月07日
    浏览(73)
  • Matlab基础语法学习(2)矩阵和数组

    矩阵和数组 MATLAB 是“矩阵实验室”的缩写。虽然其他编程语言主要一次处理一个数字,但MATLAB®主要 设计用于整个矩阵和数组。 所有 MATLAB 变量都是多维 数组 ,无论数据类型如何。 矩阵 是通常用于线性代数的二维数组。 一、阵列创建 若要在一行中创建具有四个元素的数

    2024年01月19日
    浏览(41)
  • 探索MATLAB世界:掌握基础知识与实用技能(1. MATLAB环境与基本操作 2. 数据类型与变量 3. 条件与循环,1. 数据分析与统计 2. 图像处理与计算机视觉 3. 信号处理与控制系统)

    欢迎阅读本篇博客,我们将深入探讨MATLAB语言的基础知识与实用技能,旨在帮助初学者、初中级MATLAB程序员以及在校大学生系统地掌握这门强大的科学计算与数据可视化工具。 一、MATLAB的基础知识 1. MATLAB环境与基本操作 2. 数据类型与变量 3. 条件与循环 二、MATLAB的实用技能

    2024年03月12日
    浏览(59)
  • 数组基础知识二

    特别说明 一维数组的定义(对数组空间进行清理,置0,不会产生随机值):数组在使用前要先定义;告诉编译器数组元素的类型;编译器会给这个数组预先分配连续的存储空间;定义的格式为:元素类型名 数组名[数组长度]。 1、一维数组的遍历 :在操作数组时,经常需要

    2024年02月05日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包