vectores una tablas seleccionar matriz identidad guide filas extraer eliminar elementos matlab matrix matrix-indexing

tablas - ¿Puede alguien explicar este ejemplo de eliminar elementos de una matriz en MATLAB?



tablas en matlab guide (2)

El ejemplo que dio muestra indexación lineal . Cuando tienes una matriz multidimensional y le das un único escalar o vector, indexa a lo largo de cada columna de arriba a abajo y de izquierda a derecha. Aquí hay un ejemplo de indexación en cada dimensión:

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

submat contendrá la esquina superior izquierda de la matriz: [1 4; 2 5] [1 4; 2 5] . Esto se debe a que el primer 1:2 en el subíndice accede a la primera dimensión (filas) y el segundo 1:2 accede a la segunda dimensión (columnas), extrayendo un cuadrado de 2 por 2. Si no proporciona un índice para cada dimensión, separado por comas, sino un solo índice, MATLAB indexará en la matriz como si fuera un gran vector de columna:

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"

Consulte la documentación de MATLAB para más detalles.

El siguiente ejemplo aparece en el tutorial de MATLAB:

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

El uso de un único subíndice elimina un único elemento o secuencia de elementos y cambia la forma de los elementos restantes en un vector de fila. Asi que:

X(2:2:10) = []

resultados en:

X = [16 9 2 7 13 12 1]

Misteriosamente, toda la 2da fila y los primeros dos elementos en la 4ta fila se han eliminado, pero no puedo ver la correspondencia entre la posición de los elementos eliminados y el vector de índice 2:2:10 . ¿Alguien puede explicar?


Es muy sencillo.

Básicamente comienza desde el segundo elemento en este ejemplo y va hasta el décimo elemento (columna sabia) en pasos de 2 y elimina los elementos correspondientes. Los elementos restantes resultan en un vector de fila.