В приведенном вами примере показано линейное индексирование . Когда у вас есть многомерный массив, и вы задаете ему один скаляр или вектор, он индексирует вдоль каждого столбца сверху вниз и слева направо. Вот пример индексации для каждого измерения:
mat = [1 4 7; ...
2 5 8; ...
3 6 9];
submat = mat(1:2, 1:2);
submat
будет содержать верхний левый угол матрицы: [1 4; 2 5]
. Это связано с тем, что первый 1:2
в субиндексе обращается к первому измерению (строки), а второй 1:2
обращается ко второму измерению (столбцы), извлекая квадрат 2 на 2. Если вы не предоставляете индекс для каждого измерения, разделенный запятыми, а вместо этого только один индекс, MATLAB будет индексировать в матрицу, как если бы это был один большой вектор-столбец:
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"
Подробнее см. Документацию MATLAB .