Come estrarre gli zeri in Matlab
Passaggio 1
Copia la matrice di dati originale in un'altra variabile assegnandone il valore a un nuovo nome di variabile. Se è necessario utilizzare la matrice come era prima di rimuovere gli zeri, è possibile utilizzare questa nuova variabile.
Se la matrice è chiamata M, ad esempio, assegnala a una nuova variabile chiamata Mzeros. Per fare ciò, digita "Mzeros = M" (senza virgolette) nella riga di comando Matlab.
Passaggio 2
Salva la matrice di dati originale in un file di testo nel caso in cui ne avessi bisogno in seguito, usando la funzione "dlmwrite" di MATLAB. Se la variabile MATLAB che memorizza accidentalmente i tuoi dati viene cancellata o sovrascritta, puoi ricaricare i dati originali da questo file di testo.
Ad esempio, se la matrice di dati originale è memorizzata nella variabile Mzeros, digitare "dlmwrite ('Mzeros.dat', Mzeros)" (senza virgolette) per scrivere Mzeros in un file di testo chiamato Mzeros.dat.
È possibile saltare questo passaggio se i dati sono già memorizzati in un file di testo.
Passaggio 3
Decidi se è necessario mantenere la matrice dei dati della stessa dimensione e forma. Mantenere le dimensioni della matrice e della forma se le righe della matrice e le colonne hanno un significato specifico (ad esempio, ciascuna riga rappresenta un test sperimentale diverso e ciascuna colonna rappresenta una diversa misura). Per mantenere la stessa dimensione e forma, sostituire ogni valore zero con un valore segnaposto NaN (che rappresenta "non è un numero").
Per sostituire i valori di zeri con NaN in una matrice chiamata M, scrivi "M (M == 0) = NaN" senza le virgolette. Assicurati di scrivere M == 0 con due segni di uguaglianza. Questo comando dice a MATLAB di trovare tutti gli elementi di M uguali a zero e li sostituisce con NaN.
Tutto nella matrice rimane nella stessa posizione (la stessa riga e colonna), ma tutti gli zeri ora saranno NaN. Poiché la maggior parte delle funzioni MATLAB ignorano i valori NaN, è possibile rappresentare graficamente e analizzare i dati come se i NaN non fossero presenti, ottenendo risultati significativi.
Passaggio 4
È possibile rimuovere completamente gli elementi zero (anziché sostituirli con i segnaposto) se l'array è un semplice elenco di valori, senza righe e colonne significative. Per eliminare gli elementi zero in una matrice chiamata M, scrivi "M (M == 0) = []" (senza virgolette). Assicurati di scrivere M == 0 con due segni di uguaglianza. Questo comando dice a MATLAB di trovare tutti gli elementi di M uguali a zero e sostituirli con []. [] rappresenta "vuoto". Sostituendo un valore con [] rimuovi questo elemento.
Se M era una matrice bidimensionale, ora sarà un vettore colonna, che contiene tutti gli elementi non nulli della M originale, presi come una colonna. Ad esempio, se M era un array con due righe e quattro colonne:
[1 6 0 3 2 0 7 4]
ora sarà [1 2 6 7 3 4].
Se M era un vettore (solo una riga o colonna), ora sarà un vettore più corto. Ad esempio, se M era [1 2 0 3], ora sarà [1 2 3].
La matrice cambia forma e dimensioni quando si eliminano gli elementi zero. Ma poiché la matrice non ha valori di segnaposto NaN, è possibile analizzare i dati, anche con le funzioni MATLAB che non ignorano i valori NaN.