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.