tengo una matriz:¿Cómo puedo eliminar eficientemente ceros de una matriz (no dispersa)?
x = [0 0 0 1 1 0 5 0 7 0];
necesito para eliminar todos los ceros, así:
x = [1 1 5 7];
Las matrices que estoy usando son grandes (1x15000) y necesito hacer esto múltiple veces (5000+), ¡entonces la eficiencia es la clave!
Esta falla en números negativos Pruebe 'abs (x) <= exceso tolerado – KitsuneYMG
La tolerancia x <= excluiría los números negativos de punto flotante. Probablemente necesite expandir la comparación para que sea x> = tolerancia yx <= tolerancia. El operador de lógica y en matlab se me escapa en este momento. –
Corregí la respuesta para eliminar cualquier valor lo suficientemente cerca de cero desde la dirección negativa o positiva. – gnovice