Ho una matrice:Come rimuovere gli zeri da una matrice (non sparsa) in modo efficiente?
x = [0 0 0 1 1 0 5 0 7 0];
devo rimuovere tutti zeri, in questo modo:
x = [1 1 5 7];
Le matrici sto usando grandi (1x15000) e che debba fare questo multiplo tempi (5000+), quindi l'efficienza è la chiave!
Questo non riesce a numeri negativi Prova 'abs (x) <= tolerance' – KitsuneYMG
La x <= tolleranza escluderebbe i numeri in virgola mobile negativi. Probabilmente dovresti espandere il confronto per essere x> = tolleranza e x <= tolleranza. L'operatore logico e in MATLAB mi sfugge in questo momento. –
Ho corretto la risposta per rimuovere qualsiasi valore abbastanza vicino a zero dalla direzione negativa o positiva. – gnovice