特殊矩阵的生成
(1)空阵,即空矩阵
不包含任何元素,但非“不存在”.这在矩阵操作中有很有用处的,下面会给出一个例子.
利用空阵缩维的例子:
>> A=[1,2,3;4,5,6]
A =
1 2 3
4 5 6
>>
A(:,[1,3])=[]%把矩阵a的第1,3列去掉,这样很直接比起用循环或者其他方式快多了!
A =
2
5
顺便说一下对矩阵一些特定行或列的提取,这在之前的文章中有提到过:
A ( 1 , : ) —— A 的第1行,当然1可以换成其他的数,如果有的话.
A ( : , 2 ) —— A 的第2列
A ( : , : ) —— A本身;
A ( : ) —— A所有元素按列排成的列向量,注意是按列序来排的;
(2)常用工具矩阵
**全零矩阵
** zeros(N) —— 生成 N×N
的全零矩阵,一般在赋初值时用到,可以避免在计算时为变量开辟新的内存;
>> zeros(3)
ans =
0 0 0
0 0 0
0 0 0
zeros(M,N) —— 生成 M×N 的全零矩阵,作用同上.
zeros(size(A)) ——
与A相同大小,注意size(A)是计算矩阵A的行和列,结果为[r,c];
>> zeros(size(A))
ans =
0
0
**单位矩阵,作用同全零矩阵是一样的,不重复注释说明;
** eye(N)
>> eye(4)
ans =
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
eye(M,N)
eye(size(A))
**全一阵,即一个矩阵的所有元素都是1,这在赋初值时很有用;
** ones(N)
ones(M,N)
>> ones(2,4)
ans =
1 1 1 1
1 1 1 1
ones(size(A))
随机矩阵,注意生成的数据都为0到1之间,如果要想为整数,则可以另外处理,下面将介绍:
rand(N)
rand(M,N)
rand(size(A))
rand —— 生成随机数,为一个数,也是在0与1之间.
>> rand(3)
ans =
0.9501 0.4860 0.4565
0.2311 0.8913 0.0185
0.6068 0.7621 0.8214
如果要得到整数,如0到100之间,则可以对原来0到1之间的数乘上100然后取整:
>>
r=round(100*rand(3))%round是向原点取整,即取最靠近原点的整数.如round(3.3)=3;round(-3.3)=-3.
r =
44 92 41
62 74 94
79 18 92
上面介绍的方法都是最实用的方法,如果真正要编写程序,很多时候都要用到.