vectores una matriz matrices indexacion filas extraer eliminar elementos columna cambiar agregar matlab vector strip

una - matrices en matlab



MATLAB-Eliminar ceros a la izquierda y a la izquierda de un vector (2)

Prueba esto

y = x(find(x,1,''first''):find(x,1,''last''));

El comando find(x,1,''option'') le proporciona el primer y el último índice distinto de cero.

Tengo una función wavelet con ceros al principio y al final. Me gustaría quitar todos los ceros que aparecen antes o después de la wavelet. Sin embargo, no me gustaría eliminar ningún ceros dentro de la wavelet en sí. Para simplificar, digamos que tengo el siguiente vector 1x11:

0 0 0 -2 -1 0 -1 -2 0 0 0

Después de eliminar los ceros iniciales y finales, el vector debe ser:

-2 -1 0 -1 -2

Mis vectores reales son grandes y el rendimiento es mi principal preocupación. Soy un principiante de MATLAB y agradecería cualquier consejo sobre cómo llevar a cabo esta tarea de la manera más eficiente posible.


i1 = find(X, 1, ''first'')

le dará el índice del primer elemento distinto de cero de X

i2 = find(X, 1, ''last'')

le dará el índice del último. Entonces

X(i1:i2)

le dará la matriz con los ceros iniciales y finales eliminados.