当前位置:首页 >> 信息与通信 >>

Matlab7.x程序设计第2章(1)


运算基础(1) 第2章 MATLAB 运算基础(1)

运算基础(1) 第2章 MATLAB 运算基础(1)

主要内容: 主要内容:
①变量的定义及赋值; 变量的定义及赋值; 数值数组,字符串数组, ②数值数组,字符串数组,元胞数组和构 架数组等数据类型; 架数组等数据类型; 矩阵运算的定义和规则; ③矩阵运算的定义和规则; ④数组运算的定义和规则. 数组运算的定义和规则.

2/59 MALAB 7.X程序设计

2.1 概述
2.1.1 数据术语

运算基础(1) 第2章 MATLAB 运算基础(1)

1)矩阵:由m×n个数组成的排成m行n列的一个矩形 矩阵: 个数组成的排成m 的数表,其中0 矩阵为空矩阵([]). 的数表,其中0×0矩阵为空矩阵([]).数表中第 i(1≤i≤m)行第j(1≤j≤n)列的数据称为矩阵元素 i(1≤ m)行第 ≤ n)列的数据称为矩阵元素 行第j(1 的矩阵,即为只含一个数的矩阵. 2)标量 :1×1的矩阵,即为只含一个数的矩阵. 3 ) 向量: 1×n 或 n×1 的矩阵 , 即只有一行的或者一列 向量 : 的矩阵, 的矩阵.只有一行的矩阵称为行向量, 的矩阵.只有一行的矩阵称为行向量,只有一列的矩 阵称为列向量. 数表中第i(1≤i≤n) 个数据称为向量 向量元 阵称为列向量 . 数表中第 i(1≤i≤n) 个数据称为 向量 元 素. 数组:矩阵的延伸,一般指多维数组,其中标量, 4)数组:矩阵的延伸,一般指多维数组,其中标量, 向量和矩阵都是数组的特例. 向量和矩阵都是数组的特例.
3/59 MALAB 7.X程序设计

运算基础(1) 第2章 MATLAB 运算基础(1)

2.1.2 数据类型 数据类型包括数值型,字符串型,元胞型, 数据类型包括数值型 字符串型,元胞型, 数值型, 构架型等 数值型有单精度型, 构架型等.数值型有单精度型,双精度型和 整数型.整数型有uint8,uint16,uint32 uint8,uint16,uint32和 整数型.整数型有uint8,uint16,uint32和 uint64等无符号型和int8,int16,int32和 uint64等无符号型和int8,int16,int32和 等无符号型和int8 int64等符号型整数 等符号型整数. int64等符号型整数. 数值型数据可以用带小数点的形式和科学计 数法表示,数值的表示范围是10 数法表示,数值的表示范围是10-309~10+309. -20,1.25,2.88e-56(表示2.88×10-56), 20,1.25,2.88e-56(表示 表示2.88× 7.68e204(表示 7.68e204(表示7.68×10204) 都是合法的数据表 表示7.68× 示. 一般在计算时采用双精度型,在输出时有多种数 采用双精度型,
值显示格式可供选择. 值显示格式可供选择.
4/59 MALAB 7.X程序设计

运算基础(1) 第2章 MATLAB 运算基础(1)

数值显示格式的设置通过format 命令, 命令, 数值显示格式的设置通过 格式如下: 格式如下:

format format format format format

short 默认设置, 默认设置,以5位数字形式输出 15位十进制数形式输出 long 以15位十进制数形式输出 short e 以5位十进制数加指数形式输出 16位十进制数加指数形式输出 long e 以16位十进制数加指数形式输出 short和 short g 从format short和format short e 中自动选择最佳输出形式

5/59 MALAB 7.X程序设计

运算基础(1) 第2章 MATLAB 运算基础(1)

format format format format format format format

long g

从format long和format long e long和 中自动选择最佳输出形式 16位十六进制数形式输出 hex 以16位十六进制数形式输出 以正号, + 以正号,负号和零形式输出 bank 以两位小数形式输出 rat 以近似分数形式输出 以稀疏格式( loose 以稀疏格式(变量与执行结果之 间有空行) 间有空行)输出 以紧凑格式( compact 以紧凑格式(变量与执行结果之 间无空行) 间无空行)输出
6/59 MALAB 7.X程序设计

2.2 变量
2.2.1变量的命名 变量的命名

运算基础(1) 第2章 MATLAB 运算基础(1)

变量的命名规则为: 变量的命名规则为: 变量名必须以字母开头, 1 变量名必须以字母开头,变量名的组成可以是 任意字母,数字或者下划线, 任意字母,数字或者下划线,但不能含有空格 和标点符号. 和标点符号. 2 关键字和函数名不能作为变量名. 关键字和函数名不能作为变量名. 变量名不能超过63个字符. 63个字符 3 变量名不能超过63个字符. 变量名区分字母的大小写,即大小写敏感. 4 变量名区分字母的大小写,即大小写敏感. 大小写是否区分可以通过命令casesen 大小写是否区分可以通过命令casesen on/off进行切换 如果不区分大小写, 进行切换( on/off进行切换(如果不区分大小写,为 ,否则为 否则为casesen on). casesen off ,否则为casesen on).
7/59 MALAB 7.X程序设计

运算基础(1) 第2章 MATLAB 运算基础(1)

2.2.2变量的赋值 变量的赋值 变量的赋值通常有两种形式 变量的赋值通常有两种形式: 两种形式: 变量= 1 变量=表达式 2 表达式 其中表达式是用运算符将有关运算量连接起 来的式子,其结果是一个数组. 来的式子,其结果是一个数组.

形式1中,= 形式1

代表的是赋值操作, 代表的是赋值操作,将表达式 的值赋给MATLAB 的变量; 形式2 MATLAB的变量 的值赋给 MATLAB 的变量 ; 形式 2 中 , 将表达 式的值赋给MATLAB的临时变量ans MATLAB的临时变量ans. 式的值赋给MATLAB的临时变量ans.

8/59 MALAB 7.X程序设计

运算基础(1) 第2章 MATLAB 运算基础(1)

在命令窗口输入下述语句, 例2-1 在命令窗口输入下述语句,并按回 车键执行,分别给变量a 赋值: 车键执行,分别给变量a,b,c赋值: a=1% a为标量 a=1 b=[0 b=[0 1] % b为行向量 c=[1 c=[1 2;3 4;5 6] % c为矩阵即二维数 组

9/59 MALAB 7.X程序设计

运算基础(1) 第2章 MATLAB 运算基础(1)

2.2.3 特殊变量

eps Realmax Realmin Pi i, j Inf NaN Nargin Nargout Flops

MATLAB定义的正的极小值 2204e MATLAB定义的正的极小值2.2204e-16 定义的正的极小值2 最大的正实数1 7977e+ e+308 最大的正实数1.7977e+308 最小的正实数2 2251e 最小的正实数2.2251e-308 内建的π 内建的π值 虚数单位i=j=√ i=j=√虚数单位i=j=√-1 ∞ 无法定义一个数目 函数输入参数个数 函数输出参数个数 浮点运算次数
10/59 MALAB 7.X程序设计

运算基础(1) 第2章 MATLAB 运算基础(1)

2.2.4内存变量的管理 内存变量的管理 1 内存变量的显示与删除 1)who 用于显示在MATLAB 用于显示在MATLAB工作空间中已 MATLAB工作空间中已 经驻留的变量名清单. 经驻留的变量名清单. 在给出变量名的同时, 2)whos 在给出变量名的同时,还给出它们 的大小, 的大小,所占字节数及数据类型等 信息. 信息. 删除MATLAB工作空间中的变量. MATLAB工作空间中的变量 3)clear 删除MATLAB工作空间中的变量.注 特殊变量不能被删除. 意,特殊变量不能被删除.
11/59 MALAB 7.X程序设计

运算基础(1) 第2章 MATLAB 运算基础(1)

查询例 中语句执行后工作空间中 例2-2 查询例2-1中语句执行后工作空间中 的变量情况. 的变量情况.
在命令窗口输入 who 执行结果为: 执行结果为: Your variables are: are: a b c 在命令窗口输入 whos 执行结果为: 执行结果为: Name Size Bytes Class a 1x1 8 double array b 1x2 16 double array c 3x2 48 double array Grand total is 10 elements using 72 bytes
12/59 MALAB 7.X程序设计

运算基础(1) 第2章 MATLAB 运算基础(1)

2 工作空间浏览器

工作空间浏览器窗口用于显示所有MATLAB 工作空间浏览器窗口用于显示所有 显示所有MATLAB
工作空间中的变量名,数据结构,类型, 工作空间中的变量名,数据结构,类型,大 小和字节数,也可以对变量进行观察,编辑, 小和字节数,也可以对变量进行观察,编辑, 提取和保存. 提取和保存.

13/59 MALAB 7.X程序设计

运算基础(1) 第2章 MATLAB 运算基础(1)

3 内存变量文件
利用MAT文件可以把MATLAB 利用 MAT 文件可以把 MATLAB 工作空间中的一些有用 MAT文件可以把MATLAB工作空间中的一些有用 变量长久地保留下来. MAT文件的生成和调入由 变量长久地保留下来 . MAT 文件的生成和调入由 save和load命令来完成 save和load命令来完成 save的格式为 的格式为: 1) save的格式为: 变量名表] append][save 文件名 [变量名表] [-append][-ascii] 功能:把工作空间中的变量存入磁盘. 功能 : 把工作空间中的变量存入磁盘 .其中变量 名表指出需存储的变量,append为数据填加方 名表指出需存储的变量 , append 为数据填加方 ascii为数据形式 为数据形式. 式,ascii为数据形式. load的格式为 的格式为: 2) load的格式为: 变量名表] load 文件名 [变量名表] [-ascii] 功能:磁盘上存储的mat数据文件取回到MATLAB mat数据文件取回到MATLAB工 功能:磁盘上存储的mat数据文件取回到MATLAB工 作空间中.参数含义同save save. 作空间中.参数含义同save.
14/59 MALAB 7.X程序设计

运算基础(1) 第2章 MATLAB 运算基础(1)

中语句执行后, 例2-3: 例2-1中语句执行后,在命令窗口 依次输入下述命令: 依次输入下述命令:

save %变量a,b和c保存在matlab.mat 变量a 保存在matlab. Save mydata1.mat mydata1 %变量a,b和c保存在 变量a save save save
mydata2.mat a mydata2 mydata3.mat a b mydata3 mydata1 mydata1.mat %变量a保存在 变量a mydata2 mydata2.mat %变量a和b保存在 变量a mydata3 mydata3.mat

mydata4.mat a b c%变量a,b和c保存在 mydata4 变量a mydata4 mydata4.mat
15/59 MALAB 7.X程序设计

运算基础(1) 第2章 MATLAB 运算基础(1)

2.3 数值数组
2.3.1数值数组的建立 数值数组的建立 1 赋值语句建立数组 矩阵的建立可以通过赋值语句实现,赋 矩阵的建立可以通过赋值语句实现, 值符号左边为变量名,右边为矩阵元素. 值符号左边为变量名,右边为矩阵元素.矩 阵元素应用方括号([])括住, ([])括住 阵元素应用方括号([])括住,元素可以是数 值或表达式元素,表达式可以由数字,变量, 值或表达式元素,表达式可以由数字,变量, 运算符和函数等组成. 运算符和函数等组成. 矩阵同行内的元素间用逗号或空格隔开, 矩阵同行内的元素间用逗号或空格隔开, 行与行之间用分号或回车键隔开. 行与行之间用分号或回车键隔开.



16/59 MALAB 7.X程序设计

运算基础(1) 第2章 MATLAB 运算基础(1)

例2 - 4

在命令窗口输入语句: 在命令窗口输入语句: a=[1,2,3;4,5,6;7,8,9]

按回车键,命令就被执行, MATLAB命令窗 按回车键,命令就被执行,在MATLAB命令窗 中显示以下结果: 中显示以下结果:
a = 1 4 7 2 5 8 3 6 9

如果在上述输入语句末尾加上分号, 如果在上述输入语句末尾加上分号,则在命令窗口不 显示结果.同理可以通过赋值语句建立向量. 显示结果.同理可以通过赋值语句建立向量.

17/59 MALAB 7.X程序设计

运算基础(1) 第2章 MATLAB 运算基础(1)

在命令窗口输入语句: 例2-5 在命令窗口输入语句: x=[-1.3 1+2+3 sqrt(5)] %sqrt是求平方根函数 sqrt是求平方根函数 按回车键,指令被执行,MATLAB命令窗中显示 按回车键,指令被执行,MATLAB 命令窗中显示 以下结果: 以下结果: x = -1.3000 6.0000 2.2361

18/59 MALAB 7.X程序设计

运算基础(1) 第2章 MATLAB 运算基础(1)

在命令窗口输入下述语句,建立复数数组: 例2-6 在命令窗口输入下述语句,建立复数数组: b=[1+2*i,2+3*i;2-i,3-2*i]

执行结果为: 执行结果为:
b = 1.0000 + 2.0000i 0000i 2.0000 - 1.0000i 0000i 2.0000 + 3.0000i 0000i 3.0000 - 2.0000i 0000i

19/59 MALAB 7.X程序设计

运算基础(1) 第2章 MATLAB 运算基础(1)

elfun函数库中提供一系列复数函数: 函数库中提供一系列复数函数: 函数库中提供一系列复数函数
real 复数的实数部分 real(b) 复数的虚数部分 imag imag(b) abs 绝对值或模 abs(b) 幅角 angle angle(b) 结果为弧度 angle(b)*180/pi 结果为角度 conj 共轭 conj(b)
MALAB 7.X程序设计

20/59

运算基础(1) 第2章 MATLAB 运算基础(1)

2 简捷表达式 等间隔向量赋值可以通过简捷表达式实现. 等间隔向量赋值可以通过简捷表达式实现.下 面介绍两种为等间隔向量赋值的方法: 面介绍两种为等间隔向量赋值的方法: 1)两个冒号组成等增量语句 格式: 初值:增量: 格式:t =初值:增量:终值 说明: 说明: 初值, 增量和终值分别表示开始值 分别表示开始值, 初值 , 增量和终值 分别表示开始值 , 步长和 结束值.当增量可为负值, 结束值 . 当增量可为负值 , 省略时则默认为 增量为1 当增量省略或增量> 而初值> 增量为1;当增量省略或增量>0而初值>0时 为空向量,当增量< 而初值< 为空向量,当增量<0而初值<终值时也为空 向量. 向量.
21/59 MALAB 7.X程序设计

运算基础(1) 第2章 MATLAB 运算基础(1)

例2-7 简捷表达式建立向量和矩阵

t1=0:0.02:1%产生0≤t1≤1之间的行向量, 02: 产生0≤t1 之间的行向量,
间隔为0 间隔为0.02 t2=5:-1:2 %产生5≤t1≤2之间的行向量, 产生5≤t1 之间的行向量, 间隔为间隔为-1. t4=2:-1:3 % 建立空矩阵 t5=[1:2:5;1:3:7] %建立矩阵 =[1

22/59 MALAB 7.X程序设计

运算基础(1) 第2章 MATLAB 运算基础(1)

2)使用linspace和logspace函数生成向量 使用linspace和logspace函数生成向量 linspace linspace函数的格式: linspace函数的格式: 函数的格式 linspace(a,b,n) 功能:生成从a 之间线性分布的n 功能:生成从a到b之间线性分布的n个元素的行 向量. 向量. logspace函数的格式: logspace函数的格式: 函数的格式 logspace (a,b,n) 功能:生成从10 之间按对数等分的n 功能:生成从10a到10b之间按对数等分的n个元 素的行向量. 素的行向量.
23/59 MALAB 7.X程序设计

运算基础(1) 第2章 MATLAB 运算基础(1)

linspace和logspace函数生成向量 例 2-8 用linspace和logspace函数生成向量 t1=linspace(0,2*pi,5)%从0到2*pi等分 =linspace(0 *pi,5 *pi等分 成5个点 linspace(1 linspace(1,8,8) linspace(1 linspace(1,8,1) t2=logspace(0,2,3) %从1到100(即 =logspace(0 100( 按对数等分成3 100到102)按对数等分成3个点

24/59 MALAB 7.X程序设计

运算基础(1) 第2章 MATLAB 运算基础(1)

3 内建函数 1) 通用特殊矩阵 函数库elmat 函数库elmat提供的常用的通用特殊矩阵 elmat提供的常用的通用特殊矩阵 生成函数: 生成函数: zeros ones eye rand

25/59 MALAB 7.X程序设计

运算基础(1) 第2章 MATLAB 运算基础(1)

2)用于专门学科的特殊矩阵 (1)魔方矩阵 magic(n) 功能:魔方矩阵的元素由1 功能:魔方矩阵的元素由1到n×n 的自然 数组成,其对角线上的元素为1 每行, 数组成,其对角线上的元素为1;每行,每列 及对角线上的元素之和均等于(n +n)/2. 及对角线上的元素之和均等于(n3+n)/2.魔 方矩阵的每行, 方矩阵的每行,每列及两条对角线上的元素 和都相等.对于n阶魔方阵, 和都相等.对于n阶魔方阵,其元素由 1,2,3,… 个整数组成. 1,2,3,…,n2共n2个整数组成.

26/59 MALAB 7.X程序设计

运算基础(1) 第2章 MATLAB 运算基础(1)

产生2阶和3阶魔方阵. 例2-9 产生2阶和3阶魔方阵.

m1=magic(2) m2=magic(3)

%产生2阶魔方阵 产生2 %产生3阶魔方阵 产生3

27/59 MALAB 7.X程序设计

运算基础(1) 第2章 MATLAB 运算基础(1)

(2) 范得蒙矩阵

vander(V)

生成以向量V为基础向量的范得蒙矩阵, 生成以向量V为基础向量的范得蒙矩阵,
矩阵元素最后一列全为1 矩阵元素最后一列全为1,倒数第二列 为一个指定的向量, 为一个指定的向量,其他各列是其后列 与倒数第二列的点乘积. 与倒数第二列的点乘积.可以用一个指 定向量生成一个范得蒙矩阵. 定向量生成一个范得蒙矩阵.
28/59 MALAB 7.X程序设计

运算基础(1) 第2章 MATLAB 运算基础(1)

产生范得蒙矩阵. 例2-10 产生范得蒙矩阵.

v1=vander([1;2;3;5]) v2=vander(1:3) vander(1 v3=vander(1:4) vander(1

29/59 MALAB 7.X程序设计

运算基础(1) 第2章 MATLAB 运算基础(1)

(3)希尔伯特矩阵

hilb(n) invhilb(n)

生成n 生成n阶的希尔伯特矩阵 求n阶的希尔伯特矩阵的逆

例2-11 求4阶希尔伯特矩阵及其逆矩阵. 阶希尔伯特矩阵及其逆矩阵.

format rat %以有理形式输出 H=hilb(4) invH=invhilb(4)
30/59 MALAB 7.X程序设计

运算基础(1) 第2章 MATLAB 运算基础(1)

(4)托普利兹矩阵 (4)托普利兹矩阵

toeplitz(x)
功能:用向量x 功能:用向量x生成一个对称的托普利兹矩 矩阵元素除第一行第一列外, 阵.矩阵元素除第一行第一列外,其他每 个元素都与左上角的元素相同. 个元素都与左上角的元素相同. toeplitz(x,y) 功能:生成一个以x为第一列, 功能:生成一个以x为第一列,y为第一行 的托普利兹矩阵.其中x, y均为向量 均为向量, 的托普利兹矩阵.其中x, y均为向量,两 者不必等长. 者不必等长.
31/59 MALAB 7.X程序设计

运算基础(1) 第2章 MATLAB 运算基础(1)

产生托普利兹矩阵. 例2-12 产生托普利兹矩阵.

T1=toeplitz(1:4) T2=toeplitz(1:3,3:6)

32/59 MALAB 7.X程序设计

(5) 伴随矩阵

运算基础(1) 第2章 MATLAB 运算基础(1)

compan(p) 功能:生成伴随矩阵,其中p 功能:生成伴随矩阵,其中p是一个多项式 的系数向量,高次幂系数排在前, 的系数向量,高次幂系数排在前,低次幂 排在后. 排在后. 例2-13 为了求多项式x3-7x+6的伴随矩阵, 为了求多项式x 7x+6的伴随矩阵 的伴随矩阵, 可使用语句: 可使用语句: p=[1,0,p=[1,0,-7,6];c=compan(p)

33/59 MALAB 7.X程序设计

(6) 帕斯卡矩阵

运算基础(1) 第2章 MATLAB 运算基础(1)

n阶帕斯卡矩阵的生成函数的格式: 阶帕斯卡矩阵的生成函数的格式: pascal(n) 的展开式. 例2-14 求(x+y)4的展开式.
p1=pascal(4) =pascal(4 p1 = 1 1 1 1 2 3 1 3 6 1 4 10 由执行结果可知, 由执行结果可知,矩阵次对角线上的元素 1,4,6,4, 即为展开式的系数. 1,4,6,4,1即为展开式的系数.
MALAB 7.X程序设计

1 4 10 20

34/59

运算基础(1) 第2章 MATLAB 运算基础(1)

(7)哈达玛矩阵 n阶哈达玛矩阵的生成函数的格式: 阶哈达玛矩阵的生成函数的格式: hadamard( hadamard(n) 阶和4 阶的哈达玛矩阵. 例 2-15 求 2 阶和 4 阶的哈达玛矩阵 . h1=hadamard(2) =hadamard(2 h2=hadamard(4) =hadamard(4

35/59 MALAB 7.X程序设计

运算基础(1) 第2章 MATLAB 运算基础(1)

4 通过 通过MAT数据文件加载矩阵 数据文件加载矩阵 通 过 load 命 令 或 选 择 菜 单 File→Import Data命令加载MAT数据文件来创建矩阵 命令加载MAT数据文件来创建矩阵. Data命令加载MAT数据文件来创建矩阵. 5 在M文件中创建矩阵 文件中创建矩阵 M 文件实际上是一种包含 MATLAB 代码的文本 文件实际上是一种包含MATLAB MATLAB代码的文本 文件; 通过在MATLAB 命令窗口中运行M MATLAB命令窗口中运行 文件 ; 通过在 MATLAB 命令窗口中运行 M 文 件创建矩阵. 件创建矩阵.

36/59 MALAB 7.X程序设计

运算基础(1) 第2章 MATLAB 运算基础(1)

2.3.2数组元素的标识 数组元素的标识 1 向量的标识 向量是由多个元素组成的, 向量是由多个元素组成的,每个元素通过序 号来标识. 号来标识. 演示向量的标志和重新赋值. 例2-16 演示向量的标志和重新赋值. x=1:2:7; y=x'; x=1 y=x'; y3=y(3) =y(3 %引用y的第三个元素5 引用y的第三个元素5 y5=y(end) %用end函数引用y的最后 end函数引用 函数引用y 一个元素7 一个元素7 y(3)=10 y(3)=10 %对y的第三个元素重新赋值
37/59 MALAB 7.X程序设计

运算基础(1) 第2章 MATLAB 运算基础(1)

2矩阵的标识 矩阵的标识 两种标识方式: 全下标方式和单下标方式. 两种标识方式 : 全下标方式 和 单下标方式 . 1) 全下标方式 全下标方式标识是指出行下标和列下标 的方法标识, 如一个m 的矩阵a 的第i 的方法标识 , 如一个 m×n 的矩阵 a 的第 i ≤i≤m)行第j( ≤j≤n)列的元素可 j(1 (1≤i≤m)行第j(1≤j≤n)列的元素可 表示为a(i,j) a(i,j). 表示为a(i,j).

38/59 MALAB 7.X程序设计

运算基础(1) 第2章 MATLAB 运算基础(1)

例2-17 演示矩阵元素的标识和扩充矩阵的 方法 a=[1 a=[1 2;3 4;5 6]; %建立一个2×3的矩阵 建立一个2 a12=a(1,2) 12=a(1 引用a( a(1 %引用a(1,2)的值 a(3,3) a(3 %引用a(3,3)的值,(3,3) 引用a( a(3 的值, a(3,3)=9 a(3 )=9 超出矩阵的大小, 超出矩阵的大小,出错 扩充2 的矩阵为3 %扩充2×3的矩阵为3×3的 矩阵,并给a( 矩阵,并给a(3,3)赋值 a(3

39/59 MALAB 7.X程序设计

2) 单下标方式 根据全下标换算出单下标的函数sub ind格式 全下标换算出单下标的函数sub2 格式: 根据全下标换算出单下标的函数sub2ind格式: IND=sub2 IND=sub2ind(siz,I,J) 功能:IND为返回的对应的单下标 siz为以矩阵 为返回的对应的单下标, 功能:IND为返回的对应的单下标,siz为以矩阵 行数和列数构成的两个元素的向量, 行数和列数构成的两个元素的向量,I和J分别 为矩阵的某一行号和列号. 为矩阵的某一行号和列号. 根据单下标换算出全下标的函数ind sub格式: 根据单下标换算出全下标的函数ind2sub格式: 单下标换算出全下标的函数ind2 格式 [I,J]=ind2 [I,J]=ind2sub(siz,IND) 功能: 分别为返回的矩阵的某一行号和列号, 功能:I和J分别为返回的矩阵的某一行号和列号, siz为以矩阵行数和列数构成的两个元素的向 siz 为以矩阵行数和列数构成的两个元素的向 IND为单下标 为单下标. 量,IND为单下标.
40/59 MALAB 7.X程序设计

运算基础(1) 第2章 MATLAB 运算基础(1)

运算基础(1) 第2章 MATLAB 运算基础(1)

例2-18 演示矩阵元素的全下标标识和单下 标标识的转换. 标标识的转换. [i,j]=ind2sub([3 ],5 [i,j]=ind2sub([3 3],5) % 3×3矩阵的第5个元素的全下标 矩阵的第5 ind=sub2ind([3 ],3 ind=sub2ind([3 3],3,3) % 3×3矩阵第三行,第三列元素的序号 矩阵第三行,
41/59 MALAB 7.X程序设计

运算基础(1) 第2章 MATLAB 运算基础(1)

2.3.3 子数组
子数组是从数组中取出一部分元素所构成的数组, 子数组是从数组中取出一部分元素所构成的数组, 通常可用全下标和单下标方式取子数组. 通常可用全下标和单下标方式取子数组.

1 向量的一般情况如下: 向量的一般情况如下:
A(i) 数组A的第i 数组A的第i个元素 A(i: 数组A的第i i+m个 下标增量为L A(i:L:i+m) 数组A的第i个-第i+m个(下标增量为L) 元素

42/59 MALAB 7.X程序设计

运算基础(1) 第2章 MATLAB 运算基础(1)

矩阵一般情况如下: 2 矩阵一般情况如下: A(: A(:,j) A(i,: A(i,:) A(i,j)
数组A的第j 数组A的第j列全部元素 数组A的第i 数组A的第i行全部元素 数组A的第i行第j 数组A的第i行第j列的元素 数组A的第j 数组A的第j列-第j+n列(下 j+n列 标增量为L 标增量为L)全部元素 数组A的第i 数组A的第i行-第i+m行(下标 i+m行 增量为k 增量为k)元素 数组A的第i 数组A的第i行-第i+m 下标增量为k 并在第j 行(下标增量为k)并在第j列 -第j+n列(下标增量为L)全 j+n列 下标增量为L 43/59 部元素 程序设计 MALAB 7.X

A(:,j: A(:,j:L:j+n) A(i: i+m,: A(i:k:i+m,:)

A(i: i+m,j: A(i:k:i+m,j:L:j+n)

运算基础(1) 第2章 MATLAB 运算基础(1)

演示建立行向量并取子数组的方法. 例2-19 演示建立行向量并取子数组的方法.

a1=[1.1,-2.2,3.3,-4.4,5.5]; =[1 a1(3) % 取a1的第三个元素 a1([1 4]) % 取a1的第一个和第四个元素 ([1 a1(1:2:5) % 取a1的第一个,第三个和第五 的第一个, 个元素,等价语句为: 个元素,等价语句为: a1(1:2:end)

44/59 MALAB 7.X程序设计

运算基础(1) 第2章 MATLAB 运算基础(1)

演示建立3× 的矩阵 的矩阵并取子数组的方法 例2-20 演示建立 ×4的矩阵并取子数组的方法.
a=[1 a=[1 2 3 4;5 6 7 8;9 10 11 12]; 12] a(1,:) a(1 a(:,end) a(: 的第二行, a24=a(2,4) % 取a的第二行,第四列的元素 24=a(2 a(1:2:4,:) a(1 a(:,1:2:end) a(: a1=a([1,2],[2,3,4]) =a([1 ],[2 a2=a([1,2],[2,3,1]) =a([1 ],[2 a3=a([3,1],:) =a([3 ],: a([1 ],[2 ])=zeros(2 a([1,3],[2,4])=zeros(2) %对a([1,3],[2,4])赋值 45/59 a([1 ],[2 ])赋值
MALAB 7.X程序设计

运算基础(1) 第2章 MATLAB 运算基础(1)

2.3.4数组的赋值 数组的赋值 数组的赋值大致有两种方式:全元素方式和 数组的赋值大致有两种方式 : 全元素方式 和 子 数组方式. 数组方式. 1 全元素方式 全元素方式赋值的一般格式: 全元素方式赋值的一般格式: a(: a(:)=b 功能:给矩阵a的所有元素赋值,矩阵b 功能 : 给矩阵 a 的所有元素赋值 , 矩阵 b 的元素 总数必须等于矩阵a的元素总数, 总数必须等于矩阵a的元素总数,但行列数不 一定相等. 一定相等.
46/59 MALAB 7.X程序设计

运算基础(1) 第2章 MATLAB 运算基础(1)

例2-21 演示全元素方式赋值的方法 a=zeros(2 a=zeros(2,3); b=1:6; a(:)=b b=1 a(: 执行结果如下: 执行结果如下: a = 1 2 3 4 5 6

47/59 MALAB 7.X程序设计

2 子数组方式

运算基础(1) 第2章 MATLAB 运算基础(1)

子数组方式赋值的一般格式1 子数组方式赋值的一般格式1: a(s)=b 功能:给矩阵a的部分元素赋值, 为单下标序号, 功能:给矩阵a的部分元素赋值,s 为单下标序号,b 为 向量,向量的元素个数必须等于数组a 向量,向量的元素个数必须等于数组a中s指定的元素 个数. 个数. 子数组方式赋值的一般格式2 子数组方式赋值的一般格式2: A(i: i+m,j: A(i:k:i+m,j:L:j+n)=b 功能:给数组a的部分元素赋值,则数组b 功能:给数组a的部分元素赋值,则数组b的行列数必须 等于数组a的第i i+m行 下标增量为k 并在第j 等于数组a的第i行-第i+m行(下标增量为k)并在第j j+n列 下标增量为L 全部元素的行列数. 列-第j+n列(下标增量为L)全部元素的行列数.
48/59 MALAB 7.X程序设计

运算基础(1) 第2章 MATLAB 运算基础(1)

演示子数组方式赋值方法. 例2-22 演示子数组方式赋值方法. a=zeros(2 a=zeros(2,3);a(5:6)=[2 3] a(5 )=[2 给第5 %给第5,6元素赋值 如果对a不作初始化,a(5 )=[2 如果对a不作初始化,a(5:6)=[2 3]的赋值 情况有何变化? 情况有何变化? a=zeros(3 a=zeros(3,4); a(1 )=[1 a(1:2,1:3)=[1 1 1;1 1 1] 给第一,二行元素赋值为全1 %给第一,二行元素赋值为全1

49/59 MALAB 7.X程序设计

运算基础(1) 第2章 MATLAB 运算基础(1)

2.3.5数组元素的删除 数组元素的删除 数组元素的删除是简单地通过赋值为空( 数组元素的删除是简单地通过赋值为空 ( 用 [] 表示)实现的. 表示)实现的. 通过赋值为空,可以实现删除一行元素, 通过赋值为空,可以实现删除一行元素,一列 元素,子数组和整个数组. 元素,子数组和整个数组. 注意区分空矩阵和零矩阵: 注意区分空矩阵和零矩阵: 空矩阵是0 的数组, 空矩阵是0×0的数组,而零矩阵是元素为零的 m×n的数组. 的数组.
50/59 MALAB 7.X程序设计

运算基础(1) 第2章 MATLAB 运算基础(1)

建立3 的数组, 例2-23 建立3×3的数组,实现数组元素的 删除. 删除.
a=[1 a=[1 2 0;3 4 0;5 6 9]; a(:,3)=[] a(: %删除第三列元素 a(2,:)=[] a(2 %删除第二行元素 a(1)=[] a(1 %删除一个元素,则矩阵变为行向量 删除一个元素, a=[] %删除所有元素为空矩阵

51/59 MALAB 7.X程序设计

运算基础(1) 第2章 MATLAB 运算基础(1)

2.3.6 多维数组 1 三维数组的建立 三维数组的建立方式和二维数组类似, 三维数组的建立方式和二维数组类似,大致 三种方式: 有三种方式: 1) 通过全下标元素赋值方式创建 2) 由生成函数直接创建 由生成函数ones zeros,rand和 ones, 3) 由生成函数ones,zeros,rand和randn 等直接创建多维数组. 等直接创建多维数组.

52/59 MALAB 7.X程序设计

运算基础(1) 第2章 MATLAB 运算基础(1)

例2-24 演示全下标元素赋值方式建立 三维数组的方法. 三维数组的方法. b=[1 b=[1 1;2 2]; b(:,:,2)=5 b(: )=5 %先创建二维数组 %扩展数组

53/59 MALAB 7.X程序设计

运算基础(1) 第2章 MATLAB 运算基础(1)

演示生成函数ones zeros, ones, 例2-25 演示生成函数ones,zeros,rand randn直接创建多维数组的方法 直接创建多维数组的方法. 和randn直接创建多维数组的方法.

ones(2 ones(2,3,4)

54/59 MALAB 7.X程序设计

运算基础(1) 第2章 MATLAB 运算基础(1)

函数cat的格式为: 函数cat的格式为: cat的格式为 cat(维,p1,p2 ……) cat(维,p1,p2,……) 功能:按指定行列数放置模块数组生成多维数组. 功能:按指定行列数放置模块数组生成多维数组. 参数维是指沿着第几维连接数组p 参数维是指沿着第几维连接数组p1,p2等. 函数repmat的格式为: 函数repmat的格式为: repmat的格式为 repmat(p,行 ……) repmat(p,行 列 页 ……) 功能: 功能:在总元素的数目不变的前提下重新确定数 组的行列数来重组数组. 组的行列数来重组数组. 其中第一个输入变量p是用来放置的模块数组, 其中第一个输入变量 p 是用来放置的模块数组 , 后面的变量行, 页是要放在指定的各维. 后面的变量行,列,页是要放在指定的各维.
55/59 MALAB 7.X程序设计

运算基础(1) 第2章 MATLAB 运算基础(1)

演示cat和 函数的功能. 例2-26 演示 和repmat函数的功能. 函数的功能
a=[1 2 ;3 4];b=[ 5 6;7 8];cat(1 ,a,b) a=[1 2 ;3 4];b=[ 5 6;7 8];cat(2 ,a,b)

56/59 MALAB 7.X程序设计

运算基础(1) 第2章 MATLAB 运算基础(1)

a=[1 2 ;3 4];b=[ 5 6;7 8];cat(3 ,a,b) repmat(magic(2), 2, 3) ( repmat(magic(2),[ 2, 3])结果同下) 3])结果同下 结果同下) repmat(5, 2, 3)

57/59 MALAB 7.X程序设计

2 多维数组的信息

运算基础(1) 第2章 MATLAB 运算基础(1)



函数ndims的功能是直接给出数组的维数,格式为: 函数ndims的功能是直接给出数组的维数,格式为: ndims的功能是直接给出数组的维数 ndims(p) 其中, 为数组. 其中,p为数组. 函数size的功能是给出数组各维的大小,格式为: 函数size的功能是给出数组各维的大小,格式为: size的功能是给出数组各维的大小 [m,n,… [m,n,…]=size(p) %得出各维的大小 m=size(p,x) %得出某一维的大小 其中, 为多维数组; 为行数, 为列数… 其中,p为多维数组;m为行数,n为列数…;当只有 一个输出变量时, x=1返回第一维(行数) x=2 一个输出变量时, x=1返回第一维(行数),x=2返回 第二维(列数) 以此类推. 第二维(列数),以此类推. numel的功能是给出数组的体积(元素的数目),格 numel的功能是给出数组的体积 元素的数目) 的功能是给出数组的体积( 式为: numel(p 其中, 为数组. 式为: n = numel(p ) 其中,p为数组.
58/59 MALAB 7.X程序设计

运算基础(1) 第2章 MATLAB 运算基础(1)

演示ndims size和 ndims, 例2-27 演示ndims,size和 numel函数的 函数的 功能. 功能.
x = ones(1,8);n = length(x) ones(1 % 建立任意的1×8的数组x 建立任意的1 的数组x y=zeros(3 y=zeros(3,5);d=size(y) % 建立任意的3×5的数组y 建立任意的3 的数组y [m n]=size(y),
ndims(y),numel(y),mm=size(y,1),nn=size(y,2 ndims(y),numel(y),mm=size(y,1),nn=size(y,2)

z= rand(2,10,3); rand(2 10, % 建立任意的2×10×3的数组y 建立任意的2 10× 的数组y n = length(z)
59/59 MALAB 7.X程序设计

相关文章:
matlab第2章练习及答案
matlab第2章练习及答案_财会/金融考试_资格考试/...(1)),',x2=',num2str(x(2))]); 用网孔...case 7 f='C'; case 6 f='D'; otherwise f...
Matlab程序设计教程(第二版)课后参考答案 (1)
Matlab 程序设计教程(第二版)课后参考答案第一章 实验 1.实验一第 1 题 2....(2))/(tan(b+c)+a) x =0.9829 (3) a=3.32; b=-7.9; y=2*...
MATLAB程序设计与应用第二版课后题答案
MATLAB程序设计与应用第二版课后题答案_工学_高等...= 1 0 1 1 0 0 0 0 0 0 1 1 1 7. A(1).x1=’学号’;A(1).x2=’姓名’;A(1)....
Matlab7程序设计考试复习
Matlab7.x程序设计第4... 75页 免费 Matlab7.x程序设计第2章... 59页...1.3MATLAB 系统由那些部分组成? ? MATLAB 系统主要由开发环境、MATLAB 数学函数...
MATLAB程序设计与应用(第二版)课后实验答案
MATLAB程序设计与应用(第二版)课后实验答案_理学_...e2 1 ? 2i ? ? 2 1 ln( x ? 1 ? x 2...theta=30 X= 7.8400 3.3948 6.7896 15.6800 ...
matlab7.x课后答案(楼顺天版)
matlab7.x课后答案(楼顺天版)_理学_高等教育_教育...程序为: x=0:pi/50:2*pi; k=[1 26 51 76...[] 7、 综合设计示例 设某高等学校某系两个年级...
MATLAB程序设计与应用(第二版)实验参考答案
MATLAB 程序设计与应用(第二版) 实验参考答案 %...(2)) %(2) x=[2,1+2i;-0.45,5]; z2=...[1 2 3 4 5;6 7 8 9 10;11 12 13 14 ...
MatLab练习题-程序设计完成
MatLab 练习题( 4 ) - 程 序设计学号: 2,仔细...1, 编辑函数文件 hanshu.m,该函数是 f ( x) ...end s1=4*s s1 = 3 3.141590653589692 7,写出...
参考练习Matlab习题及解答1
1.2 MATLAB 第1章 MATLAB 入门 1.1 与其他...?7 6 4? , B ? ?26? ,求解 X。 2.9 ...第3章 MATLAB 程序设计基础 3.1 命令文件与函数文件...
实验三 MATLAB程序设计
125692 实验三、实验目的 MATLAB 程序设计 1、...如图 2:共 16 页,第 27 页 28 图 2 编辑器 ...[sum_x,m_x,max_x,min_x,rsm_x] = myfun7...
更多相关标签: