第4讲matlab_多维数组
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2011-12-17
Matlab Language
10
6、数组的算术运算 、
MATLAB数组支持线性代数中所有的矩阵运算。 数组支持线性代数中所有的矩阵运算。 数组支持线性代数中所有的矩阵运算 建立特有的数组运算符,如:“.*”、“./”等。 建立特有的数组运算符, 、 等
MATLAB数组运算符列表 数组运算符列表 运算 运算符 含义说明 + 加 相应元素相加 减 相应元素相减 * 乘 矩阵乘法 .* 点乘 相应元素相乘 ^ 幂 矩阵幂运算 .^ 点幂 相应元素进行幂运算 \或/ 左除或右除 或 矩阵左除或右除 A的元素被 的对应元素除 的元素被B的对应元素除 左点除或右点除 .\或./ 或 的元素被
2011-12-17
Matlab Language
5
5、多维数组 (续) 、 将两个二维(平面)数组叠在一起, 将两个二维(平面)数组叠在一起,就构成 在一起 三维数组,第三维称为 维称为「 三维数组,第三维称为「页」(Page),如下 , 图所示: 图所示:
(1,1) (1,2) (2,2) (3,2) (1,3) (2,3) (3,3) (1,3) (2,3) (3,3) (1,4) (2,4) (3,4) (1,4) (2,4) (3,4)
2011-12-17
Matlab Language
19
区间, 的值。 【例】在[0,3 π]区间,求 y = sin x 的值。要求 , 区间 消去负半波, 区间内的函数值置零。 消去负半波,即(π,2π)区间内的函数值置零。 区间内的函数值置零
x = 0:pi/100:3*pi; y = sin(x); y1 = (y>=0).*y; %消去负半波 消去负半波
b= 1 4 9 25 16 36
>>b=reshape(a,2,3)
b= 1 2 3 4 5 6
2011-12-17
Matlab Language
16
7、关系运算 、 Matlab提供了 种关系运算符: 提供了6种关系运算符 提供了 种关系运算符: <、>、<=、>=、==、~=(不等于) 、 、 、 、 、 (不等于)
A= 4 15 -45 10 6 56 0 17 -45 0 ans = 3 6 7
2011-12-17
Matlab Language
21
7. 数据分析与统计
最大值和最小值
MATLAB提供的求数据序列的最大值和最小值的函数分别为 提供的求数据序列的最大值和最小值的函数分别为 max和min,两个函数的调用格式和操作过程类似。 和 ,两个函数的调用格式和操作过程类似。 1、求向量的最大值和最小值 、 求一个向量X的最大值的函数有两种调用格式,分别是: 求一个向量 的最大值的函数有两种调用格式,分别是: 的最大值的函数有两种调用格式 (1) y=max(X):返回向量 的最大值存入 ,如果 中包含复数元 的最大值存入y, :返回向量X的最大值存入 如果X中包含复数元 素,则按模取最大值; 则按模取最大值; (2)[y,I]=max(X):返回向量X的最大值存入 ,最大值的序号存入 , :返回向量 的最大值存入 最大值的序号存入I, 的最大值存入y, 如果X中包含复数元素,则按模取最大值。 如果 中包含复数元素,则按模取最大值。 中包含复数元素 求向量X的最小值的函数是 完全相同。 求向量 的最小值的函数是min(X),用法和 的最小值的函数是 ,用法和max(X)完全相同。 完全相同
Matlab Language
13
6、算术运算 (续) 、
【例5-2】生成一个信号:x=sin(2*pi*t)+sin(4*pi*t) 】生成一个信号: t = [0:199]./100; %采样时间点 采样时间点 % 生成信号 x = sin(2*pi*t) + sin(4*pi*t); plot(t,x); legend(‘x = sin(2*pi*t) + sin(4*pi*t)’);
2011-12-17
Matlab Language
4
5、多维数组 、 多维数组的定义
数据类型中 向量可视为一维数组 可视为一维数组, 在 MATLAB 的数据类型中,向量可视为一维数组, 矩阵可视为二维数组,对于维数 超过2 矩阵可视为二维数组,对于维数(Dimensions)超过 超过 的数组均可视为「多维数组」(Multidimesional 数组均可视为「多维数组」 Arrays,简称N-D Arrays)。 ,简称 。
2011-12-17
Matlab Language
17
7、关系运算 (续) 、 阶方阵A,判断其元素能否被3整除 整除。 【例】建立5阶方阵 ,判断其元素能否被 整除。 建立 阶方阵
A = [24, 35, 13, 22, 63; 23, 39, 47, 80, 80; ... 90, 41, 80, 29, 10; 45, 57, 85, 62, 21; 37, 19, 31, 88, 76] A= 24 35 13 22 63 23 39 47 80 80 P= 90 41 80 29 10 1 0 0 0 1 45 57 85 62 21 0 1 0 0 0 37 19 31 88 76 1 0 0 0 0 P = rem(A,3)==0 %被3除,求余 被 除 1 1 0 0 1 0 0 0 0 0
2011-12-17
Matlab Language
14
6、算术运算 (续) 、
2011-12-17
Matlab Language
15
6、算术运算 (续) 、
【例5-2】点幂“.^”举 】点幂“ 举 例 >>a=1:6
a= 1 2 3 4 5 6
>>a=a.^2
a= 1 4 9 16 25 36
>>b=b.^2
2011-12-17
Matlab Language
11
6、算术运算 (续) 、
【例5-1】数组加减法 】
a=zeros(2, 3); a(:)=1:6; b=a+2.5
b=
3.5000 5.5000 7.5000 4.5000 6.5000 8.5000
c=b-a
c= 2.5000 2.5000 2.5000 2.5000 2.5000 2.5000
2011-12-17
Matlab Language
12
6、算术运算 (续) 、
的函数曲线, 【例5-2】画出 】画出y=1/(x+1)的函数曲线,x∈[0, 100]。 的函数曲线 ∈ 。 x=0:100; y=1./(x+1); plot(x, y); legend(‘y=1/(x+1)’);
2011-12-17
5 7 3
1 1 0
2011-12-17
Matlab Language
9
5、多维数组 (续) 、
执行命令: 执行命令:whos A,得到如下结果: ,得到如下结果:
Name A
Size 3x4x2
Bytes 192
Class double array
Grand total is 24 elements using 192 bytes
三维数组, 代表第一页 数组 A 是三维数组,其中 A(:,:,1)代表第一页的二 : : 代表第一 维数组, : : 代表第二页的二维数组。 代表第二页 维数组,A(:,:,2)代表第二页的二维数组。
2011-12-17
Matlab Language
8
5、多维数组 (续) 、
多维数组的建立 多维数组的建立
Matlab语言及其应用 语言及其应用
第4讲 讲
4、数组元素的标识与寻访 (续) 、
【例4-4】 size、length函数 】 、 函数 a=ones(4,6)*6 m=size(a) size函数返回变量的大小,即 函数返回变量的大小, 函数返回变量的大小 len=length(a) 变量数组的行列数 b=1:5; length函数返回变量数组的最 函数返回变量数组的最 length(b) 大维数 c=b’ length(c)
2011-12-17
Matlab Language
20
区间的元素的位置。 【例】建立矩阵A,找出在 ,20]区间的元素的位置。 建立矩阵 ,找出在[10, 区间的元素的位置
A = [4,15,-45,10,6;56,0,17,-45,0]; find(A>=10 & A<=20) %找到非零元素的位置
关系运算符的运算法则: 关系运算符的运算法则: 1、当两个标量进行比较时,直接比较两数大小。若关系成立, 、当两个标量进行比较时,直接比较两数大小。若关系成立, 结果为1,否则为0。 结果为 ,否则为 。 2、当两个维数相等的矩阵进行比较时,其相应位置的元素按 、当两个维数相等的矩阵进行比较时, 标量关系进行比较,并给出结果, 标量关系进行比较,并给出结果,形成一个维数与原来相同 矩阵。 的0、1矩阵。 、 矩阵 3、当一个标量与一个矩阵比较时,该标量与矩阵的各元素进行 、当一个标量与一个矩阵比较时, 比较,结果形成一个与矩阵维数相等的 、 矩阵 矩阵。 比较,结果形成一个与矩阵维数相等的0、1矩阵。
Z(页 Z(页)
Y(列 Y(列)
X(行 X(行)
2011-12-17
Matlab Language
7
5、多维数组 (续)
三维数组元素的寻址:可以 行 来确定。 三维数组元素的寻址:可以(行、列、页)来确定。 来确定 三维数组为例, 寻址方式如 以维数为 3×4×2 的三维数组为例,其寻址方式如 × × 图所示: 下图所示:
2011-12-17
Matlab Language
2
4、数组元素的标识与寻访 (续) 、 双下标到单下标的转换
函数-双下标转换为单下标 【例4-5】 sub2ind函数 双下标转换为单下标 】 函数 A = [17 24 1 8; 2 22 7 14; 4 6 13 20]; sub2ind(size(A),2,2) A(5)
页百度文库
(2,1) (3,1)
(1,1)
(1,2) (2,2) (3,2)
行
(2,1) (3,1)
页
列
2011-12-17
Matlab Language
6
5、多维数组 (续) 、 三维数组, 对应至一个 三维数组,可对应至一个 X - Y - Z 三维 至一 立体坐标,如下图所示 图所示: 立体坐标,如下图所示:
2011-12-17
Matlab Language
3
4、数组元素的标识与寻访 (续) 、 单下标到双下标的转换
函数-单下标转换为双下标 【例4-6】 ind2sub函数 单下标转换为双下标 】 函数
b = zeros(3); b(:) = 1:9 IND = [3 4 5 6] [I,J] = ind2sub(size(b),IND)
2011-12-17
Matlab Language
18
8、逻辑运算 、 Matlab提供了 种逻辑运算符: 提供了3种逻辑运算符 提供了 种逻辑运算符: &(与)、|(或)、 (非) ( )、 ( )、~(
逻辑运算符的运算法则: 逻辑运算符的运算法则: 1、在逻辑运算中,确认非零元素为真(1),零元素为假(0)。 、在逻辑运算中,确认非零元素为真( ),零元素为假( )。 ),零元素为假 2、当两个维数相等的矩阵进行比较时,其相应位置的元素按 、当两个维数相等的矩阵进行比较时, 标量关系进行比较,并给出结果, 标量关系进行比较,并给出结果,形成一个维数与原来相同 矩阵; 的0、1矩阵; 、 矩阵 3、当一个标量与一个矩阵比较时,该标量与矩阵的各元素进行 、当一个标量与一个矩阵比较时, 比较,结果形成一个与矩阵维数相等的 、 矩阵 矩阵; 比较,结果形成一个与矩阵维数相等的0、1矩阵; 4、算术运算优先级最高,逻辑运算优先级最低。 、算术运算优先级最高,逻辑运算优先级最低。
建立一个简单的多维数组, 建立一个简单的多维数组,可直接由 MATLAB 命令 个简单 视窗内输入(使用“ 操作符 操作符) 视窗内输入(使用“[ ]”操作符) 例:由两个相同大小二维数组创建三维数组
A(:, :, 1) = [1 0 2 5; 4 1 8 7; 3 2 6 3]; A(:, :, 2) = [3 5 4 1; 2 6 2 1; 4 2 3 0] A(:,:,1) = 1 0 2 4 1 8 3 2 6 A(:,:,2) = 3 5 4 2 6 2 4 2 3