沿2D矩阵的行,列或对角线提取值

时间:2014-06-15 10:04:47

标签: matlab slice

我有一个二维矩阵,我希望沿着特定的行获取数据。类似于“切片”对3D矩阵的作用。有没有办法在2D矩阵上做类似的事情。

提前致谢。

1 个答案:

答案 0 :(得分:1)

提取列或行的所有值:

>> M = magic(4)
M =
    16     2     3    13
     5    11    10     8
     9     7     6    12
     4    14    15     1
>> particular_row = 3;
>> M(particular_row,:)
ans =
     9     7     6    12
>> particular_column = 2;
>> M(:,particular_column)
ans =
     2
    11
     7
    14

沿对角线提取值:

  

如果我想沿着任何方向获取数据,如果沿着连接5x5矩阵的矩阵索引(1,1)到(4,4)的直线怎么办?

我将linear indexingsub2ind函数用于此任务。演示:

(1,1)(4,4)

>> M = magic(5)
M =
    17    24     1     8    15
    23     5     7    14    16
     4     6    13    20    22
    10    12    19    21     3
    11    18    25     2     9
>> M(sub2ind(size(M), 1:4, 1:4))
ans =
    17     5    13    21

另一个例子:(1,2)(3,4)

M(sub2ind(size(M), 1:3, 2:4))
ans =
    24     7    20