Matlab 沿二维矩阵的行、列或对角线提取值

Matlab 沿二维矩阵的行、列或对角线提取值,matlab,slice,Matlab,Slice,我有一个二维矩阵,我想得到沿着特定直线的数据。类似于“切片”对3D矩阵的作用。有没有办法在2D矩阵上做类似的事情 提前感谢。提取列或行的所有值: >> 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_

我有一个二维矩阵,我想得到沿着特定直线的数据。类似于“切片”对3D矩阵的作用。有没有办法在2D矩阵上做类似的事情


提前感谢。

提取列或行的所有值:

>> 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)的线,该怎么办

我将使用和函数来完成此任务。演示:

(1,1)
(4,4)

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


这很好,但是如果我想沿着任意方向获取数据,比如沿着连接5x5矩阵的矩阵索引(1,1)到(5,4)的直线,该怎么办?@Sagar我看不到(1,1)和(5,4)之间的直线。你的意思是(1,1)到(4,4)还是(1,1)到(5,5)或者(2,1)到(5,4)?对不起,我的意思是(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
M(sub2ind(size(M), 1:3, 2:4))
ans =
    24     7    20