本节书摘来自异步社区出版社《MATLAB图像处理超级学习手册》一书中的第2章,第2.1节,作者:MATLAB技术联盟 , 张岩 更多章节内容可以访问云栖社区“异步社区”公众号查看。
2.1 矩阵的创建
MATLAB图像处理超级学习手册
在MATLAB中,矩阵是进行数据处理和运算的基本元素,矩阵的创建方法主要有4种:直接输入法、利用M文件建立矩阵、利用其他文本编辑器建立矩阵、利用MATLAB内置函数建立矩阵。下面将对这些方法进行介绍。
2.1.1 直接输入法
从键盘直接输入矩阵的元素是最简单的建立矩阵的方法:将矩阵的元素用方括号括起来,按矩阵行的顺序输入各元素,同一行的各元素之间用空格或逗号分隔,不同行的元素之间用分号分隔。
在此方法下创建矩阵需要注意以下规则:
(1)矩阵元素必须在“[ ]”内;
(2)矩阵的同行元素之间用空格(或“,”)隔开;
(3)矩阵的行与行之间用“;”(或回车符)隔开。
【例2-1】下面的例子是用直接输入的方法来创建矩阵的。
>> A=[1 21 3;42 5 6;7 8 91]
A =
1 21 3
42 5 6
7 8 91
也可以写成以下的格式:
>> B=[3 5 6;
23 56 78;
99 87 1]
B =
3 5 6
23 56 78
99 87 1
2.1.2 利用M文件建立矩阵
在MATLAB中,可以利用系统自带的文本编辑调试器专门建立一个M文件。
启动有关编辑程序或MATLAB文本编辑器,并输入待建矩阵,例如:
A=[13 21 56;42 5 80;7 76 91]
把输入的内容以纯文本方式存盘(设文件名为mymatrix.m)。
在MATLAB命令窗口中输入mymatrix:
>> mymatrix
A =
13 21 56
42 5 80
7 76 91
运行该M文件,就会自动建立一个名为MYMAT的矩阵,可供以后使用。
2.1.3 利用其他文本编辑器建立矩阵
在MATLAB中,也可以利用其他文本编辑器来创造矩阵。例如,编辑一个文本文件:
16.0 3.0 2.0 9.0
5.0 10.0 11.0 8.0
9.0 6.0 7.0 12.0
4.0 15.0 14.0 1.0
将该文本装入dat或txt等格式的文件。
如果需要该文件,可以在命令窗口输入:
>> load mymatrix.dat
或
>> load mymatrix.txt
【例2-2】读取矩阵文件trees.tif。
clear all;
load trees
image(X)
运行结果如图2-1所示。
2.1.4 利用MATLAB内置函数建立特殊矩阵
在MATLAB中,系统内置函数可以用于建立特殊矩阵,通过这些函数,可以很方便地得到想要的特殊矩阵。系统内置创建特殊矩阵的函数如表2-1所示。
【例2-3】利用几种系统内置特殊函数来创建矩阵。
>> Z = zeros(5,4)% 产生5×4全为0的矩阵
Z =
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
>> Z = ones (5,4)% 产生5×4全为1的矩阵
Z =
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
>> Z = eye (5,4)% 产生5×4的单位矩阵
Z =
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
0 0 0 0
>> rand (5,4)% 产生5×4的在(0,1)区间均匀分布的随机阵
ans =
0.9572 0.9157 0.8491 0.3922
0.4854 0.7922 0.9340 0.6555
0.8003 0.9595 0.6787 0.1712
0.1419 0.6557 0.7577 0.7060
0.4218 0.0357 0.7431 0.0318
>> randn(5,4) % 产生5×4的均值为0,方差为1的标准正态分布随机矩阵
ans =
-1.0689 -0.7549 0.3192 0.6277
-0.8095 1.3703 0.3129 1.0933
-2.9443 -1.7115 -0.8649 1.1093
1.4384 -0.1022 -0.0301 -0.8637
0.3252 -0.2414 -0.1649 0.0774
>> hilb(3) % 产生3维的Hilbert阵
ans =
1.0000 0.5000 0.3333
0.5000 0.3333 0.2500
0.3333 0.2500 0.2000
>> Z = magic(3) % 产生3阶的魔方阵
Z =
8 1 6
3 5 7
4 9 2