MATLAB学习笔记(一)

2015-04-22

几个全局性质的常识:

1、MATLAB的编号一般从1开始,这与大多数从0开始的语言不同

>> A = rand(1,10)

A =

    0.1821    0.0418    0.1069    0.6164    0.9397    0.3545    0.4106    0.9843    0.9456    0.6766

>> A(1)

ans =

    0.1821
View Code

2、说有的范围值判断都使用‘<=’,这点与绝大多数语言(如Python)不同,如下:

>> A(1:3:10)

ans =

    0.1821    0.6164    0.4106    0.6766
View Code

用C#描述 A(1:3:10) 为 for(i=1;i<=10;i+=3) 

是的,我三心二意,昨天还在学Python的,怎么着

1、矩阵也可以使用比较运算

>> A = rand(3)

A =

    0.2751    0.2277    0.0300
    0.2486    0.8044    0.5357
    0.4516    0.9861    0.0871

>> B = A>0.5

B =

     0     0     0
     0     1     1
     0     1     0

>> class(B)

ans =

logical

>> class(A)

ans =

double
View Code

 

2、用矩阵做另一个矩阵的索引

>> A = rand(2)

A =

    0.8990    0.1379
    0.6259    0.2178

>> B = A>0.5

B =

     1     0
     1     0

>> C = A

C =

    0.8990    0.1379
    0.6259    0.2178

>> A(B)=0

A =

         0    0.1379
         0    0.2178

>> C(~B)=0

C =

    0.8990         0
    0.6259         0
View Code

注意这个奇特的用法 C(~B) 表示先对B矩阵取反,然后再索引

3、矩阵裁剪

方法为 A(:,:) ,冒号部分可以用范围替代如 A(1:2:6,:) 表示取1,3,5行或者数组 A([1,2],:) 表示取1,2行或者直接元素 A(3,:) 表示取第3行。

另外对特点行赋空可以删除该行 A(1,:) = [] 删除第一行所有元素

posted @ 2015-04-22 15:12  Neral  阅读(94)  评论(0编辑  收藏  举报