MATLAB 第二章 数组运算及数组化编程


一、数组的访问与寻访

1.创建一维数组变量

法1:逐个元素输入法

  • 所有的向量元素必须在操作符“[ ]”之内
  • 向量元素间用空格或逗号分开。
  • 输入元素可以是整数、变量、算式或复数

创建数组(行向量)a=[1 3 pi 3+5i]

a=[1 3 pi 3+5*i]	%or a=[1, 3, pi, 3+5*i]

a= 1.0000	3.0000	3.1416	3.0000 + 5.0000i

法2:使用冒号操作符

通过设置开始和结束元素,以及元素之间的间隔 ,三者之间用冒号分隔 x=Start:Increment:End
Start表示向量x的第一个元素;
向量x的所有元素不能大于End ;
Increment是元素之间的间隔,可正可负。若负,则必须Start>End;若正,则必 须Start<End,否则创建的为空向量。
若Increment=1,则可简写为:x=Start:End

法3:定数线性采样法

x= linspace(x1, x2, n)
在设定的“总点数”下,均匀采样生成一维由n个元素组成的行向量;
x1与x2之间元素的间隔=(x2-x1)/(n-1)。
如果忽略参数n,则系统默认生成100个元素的行向量。

列向量的创建

逐个元素输入法,使用分号“;”分割行,行向量采用逗号或空格。

2.创建二维数组变量

法1:逐个输入

  • 所有的元素必须在操作符“[ ]”之内
  • 行与行之间须用分号“;” 间隔,也可以在分行处用回车键间隔;
  • 行内元素用空格或逗号“,”间隔。
  • 输入元素可以是整数、变量、算式或复数

image

法2:函数方法

image

法3:变量编辑器

image

法4:M文件

当数组较大或者比较复杂时,将创建数组的指令存入M文件中,下次执行M文件即可在内存中生成数组。
image

3.数组元素的编址

全下标编址

对于二维数组来说,“全下标”标识由两个下标组成:行下标,列下标。
指出是“第几行,第几列”的元素。
image
image

单下标编址

用一个下标来表明元素在数组的位置。
一维编号:先把二维数组的所有列,按先左后右的次序、首尾相接排成“一维长列”;然后,自上往下对元素位置进行编号。
image
image

转换关系

以(m×n)的二维数组A为例,若“全下标”元素位置是“第r行,第c列”,那么相应的“单下标”为l=(c-1) ×m+r。
MATLAB有两个指令可实现以上表示方法间的转换:
sub2ind 根据全下标换算出单下标。
Ind2sub 根据单下标换算出全下标。
image

4.数组元素的寻访

法1:全下标寻访

image
冒号表示所在行或列上的全部元素。
image
image

法2:单下标寻访

采用单个“一维行或列数组”寻访元素。
首先将数组生成一个一维数组,然后进行寻访。
image
image

法3:逻辑寻访法

前两种方法寻访前都知道被寻访元素的具体位置,然后采用全下标(单下标)方法根据元素下标来寻访元素。
逻辑寻访法则根据“条件”寻访元素的位置,也称为“逻辑1”寻访。
image
image

二、数组构建技法综合

对已有数组进行修改和扩展操作
image

三、数组运算与矩阵运算

image
image
/:右除,A/B表示矩阵A乘以矩阵B的逆。
\:左除, A\B表示矩阵A的逆乘以B。
./:右除, A./B表示数组A中的每个元素除以数组B的对应的元素。
.\:左除, A.\B表示数组B中的每个元素除以数组A中对应的元素。

四、多维数组与复数数组

数组的第一维称为行,第二维称为列,第三维称为页,第四维称为箱…

创建方法

法1:直接通过全下标元素赋值方式创建多维数组,按页赋值

image

法2:函数法

由函数ones, zeros, rand, randn直接创建标准多维数组;

常用指令

image

四、非数与空数组

1.非数

按IEEE规定,0/0,∞/∞,0×∞等运算都会产生非数。该非数在MATLAB中用NaN或nan记述。

非数的性质

  1. NaN参与运算所得的结果也是NaN,即具有传递性
  2. 非数没有大小概念,因此不能比较两个非数的大小

非数的作用

  1. 真实记述0/0,∞/∞,0×∞运算的结果;
  2. 避免可能因0/0,∞/∞,0×∞运算而造成程序执行的中断;
  3. 在数据可视化中,用来裁剪图形。
    image

2.空数组

“空”数组是MATLAB为操作和表述需要而专门设计的一种数组。
有一个维度是0的数组即为空数组
重要:空数组不是全0数组
空数组不占据存储空间,但是他是存在的
“空”数组的作用:
对于计算结果中的“空”可以合理地解释“所得结果的含义”;
运用“空”数组对其他非空数组赋值,可以改变数组的大小,但不能改变数组的维数
image
不能使用“全下标”方式删除单个元素

五、关系操作和逻辑操作

1.关系运算

Matlab提供了6种关系运算符:<、>、<=、>=、==、~=(不等于)

运算法则

image
image
image

2.逻辑运算

Matlab提供了3种逻辑运算符:&(与)、|(或)、~(非)

运算法则

逻辑运算符的运算法则:
1、在逻辑运算中,认定非零元素为真(1),零元素为假(0)。
2、标量与数组进行逻辑运算。运算比较在标量与数组中的每个元素进行比较,运算结果与参与运算的数组同维。
3、数组之间进行逻辑运算。运算在两数组相同位置上的元素间进行,因此运算结果数组必定和参与运算的数组同维。
4、算术运算优先级最高,逻辑运算优先级最低。
image
image
image


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM