第二讲 数组及矩阵运算

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第二讲

数组及矩阵运算

数值数组(矩阵)及其运算是MATLAB的核心。它可以使计算程序简单、易读,使程序更接近于教科书上的数学计算公式,这也是理工科学生最需要的。另外,它提高了程序的向量化程度,提高计算效率,节省计算

机的开销。

注意:矩阵与二维数组在形式上相同,但不同于数组,矩阵具有特定的含义和运算方式。

>>x1=[0,0.1,0.2,0.3,0.4,0.5]%简单的一维数组>>y1=x1.*exp(-x1)%数组的乘积运算>>x2=rand(1,4) %产生4个随机数,构成行向量>>x=[1 2 3; 4 5 6; 7 8 9]

%二维数组,也可认为是3行2列的矩阵x=

1 2 3

4 5 6

7 8 9

一、数值数组的创建

1. 一维数组的创建

逐个元素输入法

这是最简单又最通用的方法,用中括号[ ]表示,输入元素以空格或逗号为间隔。

函数生成法

利用MATLAB提供的特殊形式的数组/矩阵函数来生成。

特点:数组元素的大小按递增或递减的次序排列,元素之间的“差”是“等步长”的。

作用:用作函数的自变量,for循环中的循环自变量等。

1)“冒号:”生成法

x=a :inc :b

其中:inc 是采样点间隔,即步长,默认值为1。

递增/递减型一维数组的创建

2)线性或对数定点法

¾x=linspace(a,b,n) 线性等间隔为1×n行数组

其中:

a,b为左右端点,n为总采样点数,即一维数组的长度,它等价于x=a:(b-a)/(n-1):b

¾x=logspace(a,b,n) 对数等间隔为1×n行数组

例1:产生一个从0到10的数组,间隔为2 >>a=0:2:10

a=

0 2 4 6 8 10

>>b=linspace(0,10,6)

b=

0 2 4 6 8 10

例2:以对数等分隔

>>ak=logspace(0,1,5)

ak=

0 10 10^2 10^3 10^4

2. 二维数组的创建

小规模数组的直接输入法

•整个输入组必须以方括号[ ]为其首尾;•行与行之间必须用分号;或[Enter]键隔离;•数组元素间必须用逗号或空格分隔;

•若元素之间有复数,则元素间不能用空格;

中规模数组的数组编辑器创建法

数组创建之后,将其保存为Matrix.mat文件。使用时,只要在指令窗中输入load Matrix.mat(可不加文件后缀名)或利用菜单导入数据即可。

中规模数组的M文件创建法

打开文件编辑器,输入数组,并保存此文件(如MyMatrix.m)。那么以后使用时,只要在指令窗中直接输入指令MyMatrix,就可运行该文件,数组也会自动生成。

常用的标准数组生成函数

生成各种分布随机数组产生全0数组产生全1数组产生正态分布随机数组产生均匀分布随机数组产生魔方数组(对高维不适用)产生单位数组(对高维不适用)eye

产生对角数组(对高维不适用)diag

利用MATLAB 函数创建

%产生(2×3)的全1数组>>ones(2,3)

ans=

1 1 1

1 1 1

%产生(2×3)的正态随机阵>>randn(2,3)

ans=

-0.4326 0.1253 -1.1 465

-1.6656 0.2877 1.1909%产生(3×3)的单位数组>>D=eye(3),diag(D)

D=

1 0 0

0 1 0

0 0 1

ans= 1 1 1

%产生对角数组

>>diag(diag(D))

ans=

1 0 0

0 1 0

0 0 1

3. 二维数组的标识和寻访

数组是从1开始进行编址的,比如x(n)表示第n个元素。

)3(x )3:1(y

)8:2:3(y )7,2,5(y %提取数组的第三个元素

%提取数组从第一到第三个元素

%提取数组从第三开始加2计算,到第八个元素

%提取数组由(5,2,7)标明下标的数。

例如:

寻访,生成一维列数组(由0和1组成);

指定的一维数组,若s 是“行/列数组”,就是长度相同的行/列数组左向右的次序首尾相接而成单下标)

指A 的第c 列的全部元素A(:,c )指A 的第r 行上的全部元素A(r ,:)指A 的第r 行、第c 列的元素(双下标)A(r,c )中的例3.2-6)

二、矩阵及其运算

1.创建方法:

与二维数组的生成方法相同。

eye(n) %生成n维的单位矩阵

eye(m,n) %生成m×n维的单位矩阵

eye(size(A)) %生成与A同维的单位矩阵例如:>>A=[1,2,3;4,5,6;7,8,9]

>>size(A) %显示矩阵A的大小(3行、3列)

>>eye(size(A))

ans=1 0 0

0 1 0

0 0 1

>>diag(1,2,3) %生成3阶对角阵,对角线

元素为1,2,3

⎟⎟⎟⎠

⎞⎜⎜⎜⎝⎛300020001例:4阶赫尔伯特矩阵

⎟⎟⎟⎟⎟⎟⎟⎟⎟⎠

⎞716

15

1615141514131413121

相关文档
最新文档