第三章 数组及其运算

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数值数组(Numeral Array)和数组运算(Array Operations) 是MATLAB的核心内容。数组是MATLAB最重要的一 种内建数据类型,而数组运算则是定义在这种数据结构 上的方法。本章重点介绍数值数组,其次是与数组类似 的其它结构体。
数组:是指由一组实数或复数排成的长方阵列(Array), 包括行向量、列向量和矩阵。
0.9425 1.2566 1.5708 2.8274 3.1416 %定数(0,)线性采样法生成 (1×11)数组 0.9425 1.2566 1.5708 2.8274 3.1416
显然这两种方法生成的一维数组是完全相同的。
3.2.1一维数组 2. 一维数组的寻访
数组寻访的一般格式为X(index),下标index可以是单个正整数或 正整数数组。 x =[ 2.0000 1.0472 1.7321 3.0000 + 5.0000i ]
(生成2行5列0数组) (对A进行单下标全元素赋值)
3.2.2 二维数组 2. 二维数组的寻访和赋值
c) 利用MATLAB的冒号运算,可方便地进行数组(矩阵)的子数 组(子矩阵)的寻访和赋值。 冒号表达式: s1:s2:s3 式中,s1:起始值; s2:步长(省略为1); s3:终止值。 例如:
A(:,j):表示A矩阵第j列全部元素 A(i,:):表示A矩阵第i行全部元素 A(1:3,2:4):表示对A矩阵取第一到第三行,第二到第四列中所有元素 构成的子矩阵。
数组的运算: 无论对数组施加什么运算(加减乘除或函 数)总认定那种运算对被运算数组中的每个元素平等地 实施同样的操作。
3.1 概述
变量及其赋值
在命令窗口可直接输入变量并赋值,无须声明其 类型和维数,MATLAB将自动处理。
MATLAB 的变量名称由英文大小写52个字母、 数字和下划线等符号组成,并且第一个字符必须 是英文字母。变量和常量最长允许31个字符。须 注意的是,在默认状态下,MATLAB对字母大小 写敏感 。
C=A+B*i
C.'
C'
A./B,A/B B.\A,B\A A.*B,A*B
ans = -4.0000 -0.3333 1.0000 ans = -2.5000 -1.0000 0.5000 ans = -4.0000 -0.3333 1.0000 ans = -3.5000 -1.9545 2.6818
>> a=3*ones(4,5) a= 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 >> b=diag(a) b= 3 3 3 3
>> zeros(5,6) %生成5行6列的全0阵 ans = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
x = 2.0000 1.0472 1.7321 3.0000 + 5.0000i
b) 冒号生成法 这是一维数组生成的常用方法,其通用格式为 x=a:inc:b 其中a、b分别为 数组起始值和终值,inc为步长(inc为1时可 以省略)。
ቤተ መጻሕፍቲ ባይዱ
3.2 数值数组的生成和寻访
3.2.1 一维数组 1. 一维数组的创建 c) 定数线性采样法 该方法在设定的“总点数”下,均匀采样生成一 维“行”数组。其通用格式为: x=linspace(a , b , n) 【说明】 a、b分别是生成数组的第一个和最后一个元 素,n是采样总点数。 该指令与 x=a: (b-a)/(n-1) : b 相同。 d) 此外还可通过数组运算或数组生成函数,构建某些 特殊的数组。
标量s分别与B元素之和 标量s分别与A元素之积
A的每个元素自乘n次 对应元素相加 对应元素相乘 A的元素被B的对应元素除 对A的各元素求对数
s*A
A^n A+B A*B A/B
标量s分别与A元素之积
A阵为方阵时,自乘n次 矩阵相加 内维相同矩阵的乘积 A右除B
Logm(A) A的矩阵对数函数
%例二维数组、矩阵运算 A=[-4,-3,-2;-1,0,1;2,3,4];B=[1,3,2;3,2,5;2,5,7]; C=A+B*i %生成复数数组 C.',C' %非共轭转置和共轭转置
pow2 2的幂
反正弦 log10 常用对数 反正切 conj 指数 imag 复数共轭 复数虚部
acos 反余弦 angle 相角(弧度)
例如对数组
1 A 4 7
2 5 8
3 6 9
>> mod(A,2) ans = 1 0 1 0 1 0 1 0 1
>> log(A) ans = 0 0.6931 1.0986 1.3863 1.6094 1.7918 1.9459 2.0794 2.1972
3.2.2 二维数组 2. 二维数组的寻访和赋值
a) 全元素标识和赋值 这是一种最常用的标识方式,对于二维数组来说,“全下标” 标识由两个下标组成:行下标,列下标。如A(3,5)等。
b) 单下标标识和赋值 这是只用一个下标来指明元素在数组中的位置。对二维数组 采用“单下标”标识,应先对数组的所有元素进行“一维编 号”,即先设想把二维数组的所有列按先左后右的次序,首 尾相接排成“一维长列”;然后自上往下对元素位置进行编 号。 >> a=zeros(2,5) >> a(:)=-4:5 a= a= 0 0 0 0 0 -4 -2 0 2 4 0 0 0 0 0 -3 -1 1 3 5
指令
diag eye
含 义
产生对角形数组(二维以下) 产生单位数组(二维以下)
指令
rand
含 义
产生均匀分布随机数组
randn 产生正态分布随机数组 zeros 产生全0数组
magic 产生魔方数组(二维以下) ones 产生全1数组
>> d=eye(5) %产生(5*5)的单位阵 d= 1 0 0 0 0 >> c=diag(b) %生成对角元为数组b 的 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 %产生4行5列全3数组 3 3 3 3 %取a 阵对角元 对角阵 (与diag([3,3,3,3]) 效果相同) c= 3 0 0 0 0 3 0 0 0 0 3 0 0 0 0 3
>> A=[1 2 3;4 5 6;7 8 9] A= 1 2 3 4 5 6 7 8 9 >> A .^2 ans = 1 4 9 16 25 36 49 64 81
3.3 数组运算和矩阵运算
3.3.1 数组运算的常用函数 2. 常用函数 名称 sin cos tan asin atan exp 含义 正弦 余弦 正切 名称 log2 log 含 义 名称 sign rem mod sqrt abs 含 义 复数实部 符号函数 求余数 模除求余 平方根 模或绝对值 以2为底的对数 real 自然对数
>> sign(A) ans = 1 1 1 1 1 1 1 1 1 >> angle(A) ans = 0 0 0 0 0 0 0 0 0
>> exp(A) ans = 1.0e+003 * 0.0027 0.0074 0.0201 0.0546 0.1484 0.4034 1.0966 2.9810 8.1031
>> x(3) 取单个数组元素 ans = 1.7321 >> x([1 2 4]) 下标为由[ ]构成的数组 ans = 2.0000 1.0472 3.0000 + 5.0000i >> x(2:end) 下标为由冒号生成法构成的数组 ans = 1.0472 1.7321 3.0000 + 5.0000i >> x(4:-1:1) ans = 3.0000 + 5.0000i 1.7321 1.0472 2.0000
3.1 概述
MATLAB数据格式及显示方式 MATLAB既可用传统的十进制数表达数值,也可以 用科学计数表达数值,用e代表10的指数形式,用i 和j来代表虚数。
3.2 数值数组的生成和寻访
3.2.1 一维数组 1. 一维数组的创建 a) 逐个元素输入法 在指令窗中直接输入。例如在指令窗中输入(数组元 素之间用“ ” 或“,”隔开): x=[2 pi/3 sqrt(3) 3+5i] 则将显示:
第三章 数组及其运算
本章主要内容如下: 3.1 概述 3.2 数值数组的生成和寻访 3.3 数组运算和矩阵运算
3.4 数组的关系操作和逻辑操作
3.5 字符串数组 3.6 非数和空数组 3.7 构架数组
3.1 概述
MATLAB长于数值计算,而所谓数值计算,就是指计算 的表达式、变量中不得包含未经定义的自由变量。
C= -4.0000 + 1.0000i -3.0000 + 3.0000i -2.0000 + 2.0000i -1.0000 + 3.0000i 0 + 2.0000i 1.0000 + 5.0000i 2.0000 + 2.0000i 3.0000 + 5.0000i 4.0000 + 7.0000i ans = -4.0000 + 1.0000i -1.0000 + 3.0000i 2.0000 + 2.0000i -3.0000 + 3.0000i 0 + 2.0000i 3.0000 + 5.0000i -2.0000 + 2.0000i 1.0000 + 5.0000i 4.0000 + 7.0000i ans = -4.0000 - 1.0000i -1.0000 - 3.0000i 2.0000 - 2.0000i -3.0000 - 3.0000i 0 - 2.0000i 3.0000 - 5.0000i -2.0000 - 2.0000i 1.0000 - 5.0000i 4.0000 - 7.0000i
3.3 数组运算和矩阵运算
3.3.1 数组运算的常用函数
1. 函数数组的运算规则 对于(m×n)数组X=[xij]m×n ,函数f(· )的数组运算规则 是指: f(X)=[f(xij)]m×n 例如对(3×3)数组A进行 2次乘方运算A2,只需对数组中 每个元素进行乘方运算aij2 即可, 如右图所示。
【例】一维数组的冒号生成法和定数线性采样法。
>> x=(0:pi/10:pi) x= Columns 1 through 6 0 0.3142 0.6283 Columns 7 through 11 1.8850 2.1991 2.5133 >> y=linspace(0,pi,11) y= Columns 1 through 6 0 0.3142 0.6283 Columns 7 through 11 1.8850 2.1991 2.5133 %冒号法生成一维数组
则在指令窗中的操作如右图所示。
其中,第一个矩阵输入采用“;”分行, 第二个矩阵输入采用“回车键”分行。
4 5 6 7 8 9 >> A=[1,2,3 4,5,6 7,8,9] A= 1 2 3 4 5 6 7 8 9
3.2.2 二维数组 1. 二维数组的创建
b) 利用M文件创建和保存数组 对于经常需要调用的且比较大的数组,可专门为该数组创建一个 M文件。利用文件编辑器输入该数组并保存,以后只要在MATLAB指令 窗中,运行该文件,文件中的数组就会自动生成于MATLAB内存中。 c) 标准数组生成函数
例如对数组 作如下操作:
3.2.2 二维数组 1. 二维数组的创建
a) 直接输入法 整个输入数组须以“[ ]”为其首尾; >> A=[1 2 3;4 5 6;7 8 9] 数组行与行之间用“;”或“回车键”隔离; A= 数组元素用逗号或空格分离。 1 2 3 例如要输入二维数组
1 A 4 7 2 5 8 3 6 9
>> real(A) ans = 1 2 3 4 5 6 7 8 9
3.3.2 矩阵运算
指令 A.' A=s 矩阵运算不同于数组运算,要符合矩阵运算的规则 数组运算 含义 非共轭转置 把标量s赋给A的每个元素 指令 A' 共轭转置 矩阵运算 含义
s+B s.*A
A.^n A+B A.*B A./B log(A)
相关文档
最新文档