Advertisement

【matlab教程】04、矩阵提取满足条件的行或列

阅读量:

1 知道确定的行或列坐标

提取行:Y=X(行数,:)
如果行数连续:Y=X(起始行:终止行,:)
如果行数不连续:Y=X([行1,行2,...],:)

提取列类似

案例:

复制代码
    >> X = magic(6)
    
    X =
    
    35     1     6    26    19    24
     3    32     7    21    23    25
    31     9     2    22    27    20
     8    28    33    17    10    15
    30     5    34    12    14    16
     4    36    29    13    18    11
    
    >> Y=X([1,3],:)
    
    Y =
    
    35     1     6    26    19    24
    31     9     2    22    27    20
    
    >> Y=X(1:3,:)
    
    Y =
    
    35     1     6    26    19    24
     3    32     7    21    23    25
    31     9     2    22    27    20
    
    >> Y=X(:,[2,4])
    
    Y =
    
     1    26
    32    21
     9    22
    28    17
     5    12
    36    13
    
    >> Y=X(:,1:3)
    
    Y =
    
    35     1     6
     3    32     7
    31     9     2
     8    28    33
    30     5    34
     4    36    29

2 满足条件的行或列坐标

2.1 find

案例:X是3*n阶矩阵,是三维坐标,求三维坐标中z>15的点

复制代码
    X =
    
    35     1     6
     3    32     7
    31     9     2
     8    28    33
    30     5    34
     4    36    29
    
    >> find(X(:,3)>15)
    
    ans =
    
     4
     5
     6
    
    >> Y=X(find(X(:,3)>15),:)
    
    Y =
    
     8    28    33
    30     5    34
     4    36    29

2.2 用逻辑索引

复制代码
    >> X(:,3)>15
    
    ans =
    
      6×1 logical 数组
    
       0
       0
       0
       1
       1
       1
    
    >> Y=X(X(:,3)>15,:)
    
    Y =
    
     8    28    33
    30     5    34
     4    36    29
    
    >>

全部评论 (0)

还没有任何评论哟~