第二章MATLAB语言基础
A
8
还可以分行输入矩阵元素
>> M=[1 2 3 456 7 8 9]
M= 123 456 789
A
9
➢使用矩阵生成函数:zeros, ones, eye, rand, randn, magic…
例:
✓全零矩阵
✓全ቤተ መጻሕፍቲ ባይዱ矩阵
>> M=zeros(3,3)
>> M=ones(3,4)
M=
M=
000
1111
此外,还有范德蒙矩阵、 希尔伯特矩阵、托普利兹 矩阵、帕斯卡矩阵等。
A
12
➢使用数组编辑器:交互式输入法,比较直观。
从已有向量或矩阵中计算得 到; 从外部文件读入;
➢还有其他办法吗? A
13
(4)向量和矩阵元素的索引
➢一个元素的访问 例:
✓访问向量的一个元素
>> a=[3 6 9 2 8];
>> a(2) %访问第二个元素,单下标
第二章 MATLAB语言基础
主要内容: (1)概述 (2)创建向量 (3)创建矩阵 (4)向量和矩阵元素的索引(重点) (5)向量和矩阵的基本操作 (重点) (6)多维数组
A
1
(1)概述
➢数组:一组有序数的集合,下标是指数组元 素在数组中的序号,每个元素有唯一的下标。
➢向量:
从编程语言的角度上看,向量其实就是一维 数组;
ans = 3 6 8 2 4 1
17
>> M([1 3 5])%访问第1、3 、5 个元素, 单向量下标
ans =
314 >> M([1 2],[2,3])%访问第1、2行的第2,3列,双 向量下标;
ans =
68
45
>> M(1:3,1:2) %访问第1~3行的第1~2列,双向 量下标
ans =
000
1111
000
1111
A
10
✓单位矩阵 >> M=eye(3,3) M=
100 010 001
✓0~1之间均匀分布的随机矩阵
>> rand(3,4) ans =
0.9501 0.4860 0.4565 0.4447 0.2311 0.8913 0.0185 0.6154 0.6068 0.7621 0.8214 0.7919
36
34
12
A
18
>> M(1,:) %访问第1行的所有列
ans =
368
>> M([1 3;2 4])%矩阵做下标
ans =
31
36
>> M(:)%访问矩阵的所有元素
ans =
3
❖向量可以做向量和矩阵的下标,
ans =
6
>> a(end)%访问最后一个元素,单下标
ans =
8
A
14
✓访问矩阵的一个元素
>> M=[1 3 9;6 4 8;3 6 0] M=
139 648 360
>> M(2,2)%双下标
ans = 4
>> M(6)%单下标
ans = 6
>> M(end)%访问最 后一个元素,单下 标
ans = 0
A
15
➢若干元素的访问(向量或者矩阵做下标)
例:
✓访问向量的若干元素
>> a=[3 6 8 2 4 1]; >> a(1:3)%访问1~3个元素,单向量下标
ans =
368 >> a([1 3 5])%访问第1、3、5个元素,单向量下标
ans =
384 >> a(end-1:end)%访问最后两个元素,单向量下标
从数学的角度上看,向量就是1×N或者 N×1的矩阵,即行向量或列向量;
从物理意义上看,表示不仅有大小还有方向 的量,与标量相对应。
A
2
➢矩阵:即线性代数中定义的矩阵的概念,一 个二维的数据表,每个元素位于不同的行和 列上,从编程语言的角度看,矩阵就是二维数 组。
❖MATLAB中矩阵元素是按列存储的, C语言中是按行存储的。
ans =
41
A
16
>> a([1:3,3:-1:1])%重复访问向量 元素,单向量下标
ans =
368863 >> a([1 3;2 4])%使用矩阵做下标
ans =
38
62 ✓访问矩阵的若干元素
>> M=[3 6 8;3 4 5;1 2 6]
M=
368
345
126
A
>> a(:)%访问 向量所有元素
147
❖增量可以为负数
>> a=10:-2:2 a=
10 8 6 4 2
❖增量缺省时默认为1
>> b=1:6
b=
123456
❖冒号运算符可以与 直接输入法混用
>> a=[2 5 6:8]
a=
A
5
25678
➢使用向量生成函数linspace和logspace :
使用linspace生成线性空间向量,均匀间隔的一 组数;
❖MATLAB中的向量和矩阵都是使用1下标, 而不是C语言中的零下标。
❖MATLAB的基本运算单位就是矩阵和向 量,M语言是向量化编程的语言。
A
3
(2)创建向量
➢直接输入法:
行向量元素之间用空格(不论个数)或者逗号 隔开,列向量元素之间用分号隔开.
例: 创建向量
>> a=[1 3 5 8 9] a=
从已有向量或矩阵中计算得 到;
从外部文件读入;
➢还有其他办法吗?
A
7
(3)创建矩阵
➢直接输入法:一行中元素之间用逗号或者空 格隔开,行与行之间用分号隔开。
例:
>> M=[1 2 3;4 5 6;7 8 9] >> M=[1,2,3;4,5,6;7,8,9]
M=
M=
123
123
456
456
789
789
A
11
✓零均值、方差为1的高斯分布矩阵 >> M=randn(3,3) M=
0.1746 -0.5883 0.1139 -0.1867 2.1832 1.0668 0.7258 -0.1364 0.0593
✓魔方矩阵(每行每列以及对角线上元素之 和相同)
>> magic(4) ans =
16 2 3 13 5 11 10 8 9 7 6 12 4 14 15 1
13589 >> a=[1,3,5,6,9] a=
13569
A
>> b=[1;5;6;8;9] b=
1 5 6 8 9
❖也可采用对行向量 取转置的方法构造 列向量
4
➢使用冒号运算符:
一般格式为start : increment : end,分别表示初 值、增量和终值。
例:
>> a=1:3:9 a=
使用logspace生成对数空间向量,以10为底.
例:
>> a=linspace(1,10,6) a=
1.0000 2.8000 4.6000
6.4000
8.2000 10.0000
>> b=logspace(1,5,5)%指数之间均匀间隔 b=
10 100 1000 10000 100000
A
6
➢使用数组编辑器:交互式输入法,比较直观。