700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > MATLAB基础知识之数组与矩阵

MATLAB基础知识之数组与矩阵

时间:2021-08-05 09:43:51

相关推荐

MATLAB基础知识之数组与矩阵

本文是参考书籍《MATLAB Ra完全自学一本通 》自己整理的一些笔记和一些练习,希望会给大家带来一些帮助。

目录

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 是相同维数的数组。

乘方格式“.^”实现数组的乘方运算。数组的乘方运算包括数组间的乘方运算、数组与某个具体数的乘方运算,以及常数与数组的乘方运算。

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

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所提供的构造特殊矩阵的函数。

2.2矩阵的操作

矩阵的操作主要有旋转矩阵、改变矩阵维度、删除矩 阵元素等。MATLAB 中提供的具体此类函数如下表:

2.3矩阵索引

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

2.4矩阵信息的获取

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

2.4.1矩阵的结构

这类函数的返回值是逻辑类型的数据。返回值为 “1” 表示该矩阵是某一特定类型的矩阵;返回值为 “0” 表 示该矩阵不是该特定类型的矩阵。

2.4.2矩阵大小

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

矩阵作为 MATLAB 的内部数据存储和运算结构,其元素可以是各种各样的数据类型 , 对应不同数据类型的元素,可以是数值、字符、结构体等。MATLAB 中提供了一系列关于数据类型的测试函数。

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时,计算矩 阵各行元素的差分。

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稀疏矩阵的创建

2.7.2稀疏矩阵的信息获取

2.7.3特殊稀疏矩阵的创建

对于矩阵的加、减、乘、除运算,只要其中有一个矩阵是满矩阵,则输出的结果都是满矩阵。 稀疏矩阵的数乘为稀疏矩阵;稀疏矩阵的幂为稀疏矩阵。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。