מדוע לעבוד עם Timetables?
![](https://www.systematics.co.il/wp-content/uploads/timetables-MAIN.png)
בגרסת R2016b התווסף סוג מידע חדש לעבודה ב-MATLAB, שנקרא Timetable. על ידי שימוש ביכולת זו, תוכלו לאגד מידע שכולל גם יחידות זמן, ולנהל את כל המאגר שלכם בצורה יעילה יותר. בפוסט זה נספר כיצד עושים זאת, ומהם היתרונות בעבודה עם טיפוס זה.
בגרסת R2016b התווסף סוג מידע חדש לעבודה ב-MATLAB, שנקרא Timetable. על ידי שימוש ביכולת זו, תוכלו לאגד מידע שכולל גם יחידות זמן, ולנהל את כל המאגר שלכם בצורה יעילה יותר. בפוסט זה נספר כיצד עושים זאת, ומהם היתרונות בעבודה עם טיפוס זה.
להלן דוגמה להמרה של טבלה מ- table ל- timetable :
התוצאה המתקבלת מאוד דומה לטבלה, אז למה בכל זאת כדאי לנו להשתמש ב-timetable?
אציג לכם חמש פונקציות מגניבות שימחישו את הרעיון העומד מאחורי השימוש ב-timetable ויציגו פתרונות לבעיות שיקלו עליכם בעבודתכם.
1. פונקציות retime
כשעובדים עם דאטה מסוג time-series, לעיתים נוצרים מרווחים כתוצאה מקצב דגימה לא אחיד. על מנת להשלים את פערי הדגימה הללו, ניתן להשתמש בפונקציית retime. הפונקציה מבצעת השלמה של הערכים החסרים במספר שיטות אפשריות.
אמחיש לכם זאת על ידי דוגמא. בטבלה המוצגת, ניתן לראות כי חסרים לנו שני ימים: ה-6 ו-ה-7 במאי.
נשתמש בפונקציית retime על מנת להוסיף את השורות החסרות:
כאשר קוראים לפונקציה בלי לציין שיטה, הפונקציה משלימה את השורות החסרות עם אינדיקציה לערכים החסרים (NaN). באמצעות מאפיין VariableContinuity של הטבלה וקריאה לפונקציה retime, ניתן להשלים כל משתנה על ידי שימוש בשיטת השלמה שונה.
נראה כי לאחר קריאה לפונקציה, הושלמו הערכים החסרים לפי הדרישות שלנו. המשתנים Tmax ו-Tmin הושלמו על ידי ערכים רציפים באמצעות אינטרפולציה לינארית. משתנה PrecipTotal הושלם על ידי ערכים בדידים – כל ערך חסר הושלם ע"י הערך הקודם.
2. פונקציית synchronize
בעזרת פונקציה זו תוכלו לאחד שתי טבלאות שונות בעלות זמנים זהים. אמחיש זאת על ידי דוגמא. לפנינו שתי טבלאות TT1 ו -TT2 :
על מנת לאחד אותן, נשתמש בפונקצית synchronize כפי שמופיע בתמונה הבאה:
וכך באמצעות פקודה אחת, איחדנו את שתי הטבלאות – השורות אוחדו על ידי שימוש בפרמטר 'union' ואינטרפולציה לינארית יושמה על ידי שימוש בפרמטר 'linear'.
3. פונקציית stackedplot
החל מגרסת R2018b, ניתן לייצר גרף אחד בו יש ציר x משותף לכל המשתנים, אך ציר y נפרד לכל משתנה. דוגמה לשימוש בגרף מסוג זה הוא גרף המשווה בין שני סנסורים בעלי ציר זמן משותף:
4. פונקציית timerange
פונקציית timerange מאפשרת לייצור טבלה חדשה שמכילה ערכים השייכים לתקופת זמן מסוימת. הפונקציה מקבלת טווח זמן, כלומר תאריך התחלתי ותאריך סופי, ומחזירה אובייקט שניתן להעביר כאינפוט לטבלה המקורית.
אמחיש זאת על ידי דוגמא. בשלב ראשון נגדיר timetable:
כרגע, אנחנו רוצים ליצור טבלה חדשה שמכילה רק ערכים של שעות הבוקר של הטבלה. נשתמש בפונקציית timerange בצורה הבאה:
נעביר את המשתנה S בתוך הטבלה המקורית שלנו:
ניתן לראות שקיבלנו טבלה חדשה המכילה אך ורק שורות ששייכות לתקופת זמן שהגדרנו. בדומה לזה, אפשר גם להעביר לפונקציה תאריך התחלה ומשך זמן בו נרצה להתמקד.
לדוגמא, כרגע רוצים ליצור טבלה חדשה שמכילה את הערכים של חודש פברואר. ניתן לעשות זאת בצורה הבאה:
5. פונקציית Lag
פונקציית Lag מאפשרת להזיז את הנתונים בטבלה קדימה בזמן על יד צעד אחד.
נמחיש זאת באמצעות דוגמא:
ניתן לראות שהמשתנה Temp בטבלה השנייה זז שורה אחת קדימה והשלים את הערך החסר באמצעות NaN.