1 min read

【转】Matlab学习:特殊矩阵的生成(4)

特殊矩阵的生成
(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
上面介绍的方法都是最实用的方法,如果真正要编写程序,很多时候都要用到.