Saltar al contenido

Eliminar una columna de una matriz en GNU Octave

Este artículo ha sido probado por nuestros especialistas para que tengas la garantía de la exactitud de nuestro tutorial.

Solución:

En caso de que no sepa el número exacto de columnas o filas, puede usar el índice mágico “final”, por ejemplo:

mymatrix(:,2:end)  % all but first column

mymatrix(2:end,:)  % all but first row

Esto también le permite dividir filas o columnas de una matriz sin tener que reasignarlas a una nueva variable.

GNU Octave elimina las columnas 2 y 4 de una matriz

mymatrix = eye(5); 
mymatrix(:,[2,4]) = []; 
disp(mymatrix)

Huellas dactilares:

1   0   0
0   0   0
0   1   0
0   0   0
0   0   1

GNU Octave elimina las filas 2 y 4 de una matriz:

mymatrix = eye(5); 
mymatrix([2,4],:) = [];
disp(mymatrix) 

Huellas dactilares:

1   0   0   0   0
0   0   1   0   0
0   0   0   0   1

Complejidad del tiempo

La complejidad de la CPU de GNU Octave para cortar y transmitir aquí es un tiempo lineal rápido O(n * c) donde n es el número de filas y ca el número constante de filas que quedan. Es un solo núcleo de nivel C vectorizado pero no paralelo.

Complejidad de la memoria

La complejidad de la memoria de trabajo es lineal: O(n * 2) C hace un clon de los dos objetos, itera sobre cada elemento y luego elimina el original.

La única velocidad de tiempo será un problema si sus matrices son demasiado anchas, altas o tienen una cantidad de dimensiones que explotan su memoria rápida, y la velocidad está limitada por la velocidad de transferencia entre el disco y la memoria.

El método inverso de hacer esto:

columns_you_want_to_keep = [1, 3, 5]
new_matrix = my_matrix(:,columns_you_want_to_keep)

Reseñas y puntuaciones del tutorial

Si entiendes que ha resultado provechoso nuestro artículo, agradeceríamos que lo compartas con más seniors de esta forma contrubuyes a difundir nuestro contenido.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *