Can someone explain this example of deleting elements from a matrix in MATLAB?

前端 未结 2 710
攒了一身酷
攒了一身酷 2020-12-18 16:16

The following example appears in the MATLAB tutorial:

X = [16  2 13;
     5  11  8;
     9   7 12;
     4  14  1]

Using a single subscript

2条回答
  •  醉酒成梦
    2020-12-18 16:58

    The example you gave shows linear indexing. When you have a multidimensional array and you give it a single scalar or vector, it indexes along each column from top to bottom and left to right. Here's an example of indexing into each dimension:

    mat = [1 4 7; ...
           2 5 8; ...
           3 6 9];
    submat = mat(1:2, 1:2);
    

    submat will contain the top left corner of the matrix: [1 4; 2 5]. This is because the first 1:2 in the subindex accesses the first dimension (rows) and the second 1:2 accesses the second dimension (columns), extracting a 2-by-2 square. If you don't supply an index for each dimension, separated by commas, but instead just one index, MATLAB will index into the matrix as though it were one big column vector:

    submat = mat(3, 3);     % "Normal" indexing: extracts element "9"
    submat = mat(9);        % Linear indexing: also extracts element "9"
    submat = mat([1 5 6]);  % Extracts elements "1", "5", and "6"
    

    See the MATLAB documentation for more detail.

提交回复
热议问题