בתחילת החודש העברתי הרצאה במסגרת סמינר בנושא החידושים ב-MATLAB ו-Simulink בגרסאות האחרונות, ולקראת תום ההרצאה הצגתי שקף ובו סקירה של טיפים וטריקים בעבודה עם MATLAB. מפאת קוצר הזמן, לא הייתי יכול להדגים או להסביר כל טיפ וטריק, ולכן ביקשתי מהנוכחים לבחור כמה מראשי הפרקים שבשקף אשר נשמעים להם מעניינים ואשר היו מעוניינים שארחיב עליהם. הקהל בחר ב-Link Plot וב-Brush/Select Data, ובהם יעסוק פוסט זה.
לא רבים יודעים, אך באמצעות Link-Plot ניתן לקשר בין גרף לבין המשתנים שמהם הוא הופק, כך ששינוי של המשתנים יביא לעדכון של הגרף (מבלי שיהיה צורך להפעיל שוב פעם את פקודת ציור הגרף). בנוסף, ניתן אפילו לבצע שינויים במידע על גבי הגרף, כך שהללו יבואו לידי ביטוי גם בגרף וגם במשתנים אשר מהם הוא נוצר (וזאת על ידי Brush/Select Data). והנה דוגמה...
נניח שהפקנו גרף של עשר נקודות במישור X-Y אשר הוגרלו מפילוג אחיד בתחום [0,1] (לחצו על התמונה כדי להגדילה):
ניתן לקשר בין הגרף לבין המשתנים שמהם הוא הופק באמצעות לחצן ה-Link Plot שבתפריט ה-Figure
אם נלחץ עליו, ולמשל נשנה את קואורדינטת ה-X הראשונה ל-5, הגרף יתעדכן בהתאם, מבלי שיהיה צורך להפעיל שוב את פקודת scatter:
משמאל ללחצן ה-Link Plot מופיע לחצן ה-Brush/Select Data
כשלוחצים על הלחצן הזה, ניתן לסמן עם העכבר נקודות בגרף, כך שסימון הנקודות יהיה שקול לבחירת התאים המתאימים (ב-Variable Editor) מתוך המידע אשר שימש להפקת הגרף:
ומה אפשר לעשות עם זה? הרשימה המלאה של האפשרויות מופיעה כאשר מקליקים עם הלחצן הימני של העכבר על גבי אחת מהנקודות:
אפשר, למשל, לייצר משתנה חדש מתוך כל הנקודות שמעניינות אותנו (Create Variable), להסיר את הנקודות שמפריעות לנו (Remove) או להחליף את ערכיהן בערכים אחרים (Replace with). למרות שאני מתקשה לחשוב על מקרה שבו נרצה לגרום לנתונים להיראות טובים יותר...
למידע נוסף:
Data Brushing
Data Linking
וכמובן אפשר להגיע לשתי הפונקציונליות הללו גם ישירות מהתוכנה:
השבמחק1. http://undocumentedmatlab.com/blog/accessing-plot-brushed-data/
2. http://www.mathworks.com/help/matlab/ref/lineseriesproperties.html#XDataSource
http://www.mathworks.com/help/matlab/ref/lineseriesproperties.html#YDataSource
http://www.mathworks.com/help/matlab/ref/lineseriesproperties.html#ZDataSource