matlab中的多维数组

更新时间:2023-07-21 13:42:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

matlab中的多维数组

Matlab语言及其应用多维数组

matlab中的多维数组

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)

2013-7-9

Matlab Language

matlab中的多维数组

4、数组元素的标识与寻访 (续) 双下标到单下标的转换【例4-5】 sub2ind函数-双下标转换为单下标A = [17 24 1 8; 2 22 7 14; 4 6 13 20]; sub2ind(size(A),2,2) A(5)

2013-7-9

Matlab Language

matlab中的多维数组

4、数组元素的标识与寻访 (续) 单下标到双下标的转换【例4-6】 ind2sub函数-单下标转换为双下标

b = zeros(3); b(:) = 1:9 IND = [3 4 5 6] [I,J] = ind2sub(size(b),IND)

2013-7-9

Matlab Language

matlab中的多维数组

5、多维数组 多维数组的定义在 MATLAB 的数据类型中,向量可视为一维数组, 矩阵可视为二维数组,对于维数(Dimensions)超过2 的数组均可视为「多维数组」(Multidimesional Arrays,简称N-D Arrays)。

2013-7-9

Matlab Language

matlab中的多维数组

5、多维数组 (续) 将两个二维(平面)数组叠在一起,就构成 三维数组,第三维称为「页」(Page),如下 图所示:(1,1) (1,2) (2,2) (3,2) (1,3) (2,3) (3,3) (1,4) (2,4) (3,4)

(2,1) (3,1)

(1,1)

(1,2)(2,2) (3,2)

(1,3)(2,3) (3,3)

(1,4)(2,4) (3,4)

(2,1) (3,1)

2013-7-9

Matlab Language

matlab中的多维数组

5、多维数组 (续) 三维数组,可对应至一个 X - Y - Z 三维 立体坐标,如下图所示:Z(页)

Y(列)

X(行)

2013-7-9

Matlab Language

matlab中的多维数组

5、多维数组 (续) 三维数组元素的寻址:可以(行、列、页)来确定。 以维数为 3×4×2 的三维数组为例,其寻址方式如 下图所示:

数组 A 是三维数组,其中 A(:,:,1)代表第一页的二 维数组,A(:,:,2)代表第二页的二维数组。Matlab Language8

2013-7-9

matlab中的多维数组

5、多维数组 (续) 多维数组的建立

建立一个简单的多维数组,可直接由 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

5 7 3

A(:,:,2) = 3 5 4 2 6 2 4 2 3

1 1 0

2013-7-9

Matlab Language

matlab中的多维数组

5、多维数组 (续)执行命令:whos A,得到如下结果:

Name A

Size 3x4x2

Bytes 192

Class double array

Grand total is 24 elements using 192 bytes

2013-7-9

Matlab Language

matlab中的多维数组

6、数组的算术运算 MATLAB数组支持线性代数中所有的矩阵运算。 建立特有的数组运算符,如:“.*”、“./”等。

MATLAB数组运算符列表 运算 运算符 含义说明 加 + 相应元素相加 减 相应元素相减 乘 * 矩阵乘法 点乘 .* 相应元素相乘 幂 ^ 矩阵幂运算 点幂 .^ 相应元素进行幂运算 左除或右除 \或/ 矩阵左除或右

除 左点除或右点除 .\或./ A的元素被B的对应元素除2013-7-9

Matlab Language

matlab中的多维数组

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-ac= 2.5000 2.5000 2.5000 2.5000 2.5000 2.5000

2013-7-9

Matlab Language

matlab中的多维数组

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)’);

2013-7-9

Matlab Language

matlab中的多维数组

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)’);

2013-7-9

Matlab Language

matlab中的多维数组

6、算术运算 (续)

2013-7-9

Matlab Language

matlab中的多维数组

6、算术运算 (续)【例5-2】点幂“.^”举 例 >>a=1:6a= 1 2 3 4 5 6

>>a=a.^2a= 1 4 9 16 25 36

>>b=b.^2b= 1 4

>>b=reshape(a,2,3)b= 1 2 3 4 5 6

9 25 16 36

2013-7-9

Matlab Language

matlab中的多维数组

7、关系运算 Matlab提供了6种关系运算符:

<、>、<=、>=、==、~=(不等于)关系运算符的运算法则:

1、当两个标量进行比较时,直接比较两数大小。若关系成立,结果为1,否则为0。 2、当两个维数相等的矩阵进行比较时,其相应位置的元素按

标量关系进行比较,并给出结果,形成一个维数与原来相同的0、1矩阵。 3、当一个标量与一个矩阵比较时,该标量与矩阵的各元素进行

比较,结果形成一个与矩阵维数相等的0、1矩阵。2013-7-9

Matlab Language

matlab中的多维数组

7、关系运算 (续) 【例】建立5阶方阵A,判断其元素能否被3整除。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 02013-7-9

Matlab Language

matlab中的多维数组

8、逻辑运算 Matlab提供了3种逻辑运算符:

&(与)、|(或)、~(非)逻辑运算符的运算法则:

1、在逻辑运算中,确认非零元素为真(1),零元素为假(0)。2、当两个维数相等的矩阵进行比较时,其相应位置的元素按

标量关系进行比较,并给出结果,形成一个维数与原来相同的0、1矩阵; 3、当一个标量与一个矩阵比较时,该标量与矩阵的各元素进行

比较,结果形成一个与矩阵维数相等的0、1矩阵;4、算术运算优先级最高,逻辑运算优先级最低。2013-7-9

Matlab Language

matlab中的多维数组

【例】在[0,3 π]区间,求 y sin x 的值。要求

消去负半波,即(π,2π)区间内的函数值置零。x = 0:pi/100:3*pi; y = sin(x); y1 = (y>=0).*y; %消去负半波

2013-7-9

Matlab Language

matlab中的多维数组

【例】建立矩阵A,找出在[10,20]区间的元素的位置。

A = [4,15,-45,10,6;56,0,17,-45,0]; find(A>=10 &

A<=20) %找到非零元素的位置A= 4 15 -45 10 6 56 0 17 -45 0 ans = 3 6 72013-7-9

Matlab Language

本文来源:https://www.bwwdw.com/article/yoym.html

Top