כיצד לחלץ אפסים ב Matlab
שלב 1
העתק את מטריצת הנתונים המקורית למשתנה אחר על ידי הקצאת הערך שלה לשם משתנה חדש. אם אתה צריך להשתמש במטריצה כפי שהיה לפני הסרת אפסים, אתה יכול להשתמש זה משתנה חדש.
אם המטריצה נקראת M, לדוגמה, הקצה אותה למשתנה חדש הנקרא Mzeros. לשם כך, הקלד "Mzeros = M" (ללא המרכאות) בשורת הפקודה Matlab.
שלב 2
שמור את המטריצה הנתונים המקוריים בקובץ טקסט למקרה שאתה צריך את זה שוב מאוחר יותר, באמצעות "dlmwrite" הפונקציה של MATLAB. אם משתנה MATLAB שאוחסן בטעות את הנתונים שלך נמחק או מוחלף, תוכל לטעון מחדש את הנתונים המקוריים מקובץ טקסט זה.
לדוגמה, אם מטריצת הנתונים המקורית מאוחסנת במשתנה Mzeros, הקלד dlmwrite ('Mzeros.dat', Mzeros) "(ללא המרכאות) כדי לכתוב את Mzeros לקובץ טקסט בשם Mzeros.dat.
באפשרותך לדלג על שלב זה אם הנתונים כבר מאוחסנים בקובץ טקסט.
שלב 3
להחליט אם אתה צריך לשמור על הנתונים שלך מטריצה באותו גודל וצורה. שמור את גודל המטריצה והצורה אם לשורות המטריצה ולעמודות יש משמעות ספציפית (לדוגמה, כל שורה מייצגת בדיקה ניסויית שונה וכל עמודה מייצגת כמות שונה של מדידה). כדי לשמור על אותו גודל וצורה, החלף כל ערך אפס עם ערך מציין מיקום NaN (המייצג "אינו מספר").
כדי להחליף את הערכים של אפסים עם NaN במטריצה הנקראת M, כתוב "M (M ==) = NaN" ללא המרכאות. הקפד לכתוב M == 0 עם שני סימנים של שוויון. פקודה זו אומרת MATLAB למצוא את כל האלמנטים של M שווה לאפס ולהחליף אותם עם NaN.
הכל במטריצה נשאר באותה תנוחה (אותה שורה ועמודה), אבל כל אפסים יהיה עכשיו NaN. מאז רוב פונקציות MATLAB להתעלם ערכי NaN, אתה יכול גרף לנתח את הנתונים כאילו NaNs לא היו שם, קבלת תוצאות משמעותיות.
שלב 4
ניתן להסיר את האלמנטים אפס לחלוטין (במקום להחליף אותם עם מצייני מיקום) אם המערך הוא רשימה פשוטה של ערכים, ללא שורות ועמודות משמעותיות. כדי לבטל את האלמנטים אפס במטריצה בשם M, כתוב "M (M == 0) = ["] ללא (ללא המרכאות). הקפד לכתוב M == 0 עם שני סימנים של שוויון. פקודה זו מתארת את MATLAB כדי למצוא את כל האלמנטים של M שווה לאפס ולהחליף אותם ב- []. [] מייצג "ריק". מחליף ערך עם [] מסיר רכיב זה.
אם M היה מטריקס דו מימדי, הוא יהיה עכשיו וקטור טור, המכיל את כל האלמנטים nonzero של M המקורי, נלקח בתור עמודה. לדוגמה, אם M היה מערך עם שתי שורות וארבע עמודות:
[1 6 0 3 2 0 7 4]
עכשיו זה יהיה [1 2 6 7 3 4].
אם M היה וקטור (רק שורה אחת או עמודה), זה יהיה עכשיו וקטור קצר יותר. לדוגמה, אם M היה [1 2 0 3], עכשיו זה יהיה [1 2 3].
המטריצה משנה את צורתה וגודלה בעת מחיקת האלמנטים אפס. אבל מאז המטריצה אין ערכי מיקום NaN, אתה יכול לנתח את הנתונים, אפילו עם פונקציות MATLAB כי לא להתעלם ערכי NaN.