The MATLAB Notebook v1.6

מסמכים קשורים
אגף התקשוב, אוניברסיטת בר אילן קורס תוכנת מטלב ויישומיה ד"ר סמדר שץ מימוש ממשק משתמש ע"י GUIDE קורס תוכנת מטלב ויישומיה שיעור מס' 12: שימוש ב- GUIDE -

תוכנת מטלב ושימושיה שיעור 12

The MATLAB Notebook v1.6

אגף התקשוב, אוניברסיטת בר אילן קורס תוכנת מטלב ויישומיה ד"ר סמדר שץ קורס תוכנת מטלב ויישומיה שיעור מס' 11: תכנות ממשקי משתמש תכנות מונחה-אירועים תכנות

ייבוא וייצוא של קבצי אקסל וטקסט

מדריך למרצים ומתרגלים 1

מצגת של PowerPoint

הוספת קישור לאתר אינטרנט תוכן ממשק בדיקת מטלות...3 איחוד אתרי קורסים...5 סל מחזור... 7 חידושים בפעילויות...8 תצורת קורס: כפתורים... 9 פורומים...10 שיפ

סרגל כלים ל-Outlook או לExplorer- מדריך למשתמש

HTML - Hipper Text Makeup Language

WinZIP תוכנה לדחיסת קבצים ספטמבר 2007

תכנות מונחה עצמים א' – תש"ע

שאלהIgal : מערכים דו מימדיים רקורסיה:

מיכפל

מרצים יקרים, אתר המכללה מאפשר למרצי המכללה להזין את פרטיהם וקורות חייהם. זאת בדומה לאתרים מקבילים של מוסדות אקדמיים בארץ ובעולם. עמודי המרצים נועדו לא

Microsoft Word - Ass1Bgu2019b_java docx

שאלהIgal : מערכים דו מימדיים רקורסיה:

יצוא לחשבשבת תוכן עיניינים הגדרות - חשבונות בנק...2 הגדרות - הגדרות חשבשבת... 3 הגדרות - כרטיסי אשראי... 4 הגדרות - סוגי הכנסה... 5 יצוא לחשבשבת...6 י

1 תבניות טקסט מהי תבנית טקסט? שימוש ב- Characters Meta שימוש ב- Expression Grouping שימוש ב- Quantifiers תת תבניות הפונקציה preg_match הפונקציה preg_m

תיק משימטיקה מגרף הנגזרת לגרף הפונקציה להנגשה פרטנית נא לפנות: כל הזכויות שמורות

הנחיות הורדה ותפעול לספרים דיגיטלים. הוצאת כנרת, זמורה ביתן שמחה להגיש לכם, התלמידים, ספר דיגיטלי. הספרים עצמם הינם בקבצי PDF הניתנים להורדה ללא עלות

PowerPoint Presentation

מדריך להתחלה מהירה Microsoft Project 2013 נראה שונה מגירסאות קודמות, ולכן יצרנו מדריך זה כדי לעזור לך ללמוד להכיר אותו. סרגל הכלים לגישה מהירה התאם אי

ת'' מדריך לבעלי תיבה קיימת במופ ומשתמשים ב Outlook 2003 או doc.2007 לפני שניגש להגדיר את תיבת המייל החדשה, נבצע גיבויי של המיילים ופנקס הכתובות מהחשבו

Microsoft Word IG Lab - Configure Wireless Router in Windows Vista.docx

משימה תכנית המתרגמת קטעי טקסט לשפה אחרת הקלט: קובץ המכיל את קטעי הטקסט וכן את השפה אליה רוצים לתרגם תרגול מס' 4: המתרגם שימוש במחלקות קיימות תכנות מתק

<4D F736F F D20F4E9E6E9F7E420FAF8E2E5ED20ECF2E1F8E9FA20E4E2E4E420F1E5F4E9FA20496C616E2E646F63>

מדריך להתקנת Code Blocks מדריך זה נועד לתאר את תהליך התקנת התוכנה של הקורס "מבוא למחשב שפת C". בקורס נשתמש בתוכנת Code::Blocks עם תוספת )אשף( המתאימה

PowerPoint Presentation

תוכן הגדרת שאלת רב-ברירה ]אמריקאית[...2 הגדרת שאלת נכון\לא נכון...8 שאלות אמריקאיות 1

ForMenahelHeshbonot

Slide 1

Microsoft Word - tips and tricks - wave 5.doc

2013/14 אוניברסיטת חיפה מבוא למדעי מחשב, מעבדה מטרת המעבדה: לתרגל את המעבר מאלגוריתם לקוד C כמה שיותר. הוראות:.1.2 ניתן לעבוד ביחידים או בזוגות. (יש מ

Titre du document en police Sodexo

מסע מדע ו - מסע ברכב שטח ביבשות רחוקות

<4D F736F F D20E7E5F7E920E0E9EEE5FA20E1E8E1ECE42E646F63>

פקולטה לחינוך מנהל סטודנטים Beit Berl College الكلية االكاديمية بيت بيرل 20/06/2016 י"ד/סיון/תשע"ו ייעוץ וירטואלי הרכבת מערכת )רישום לקורסים( באמצעות

תרגול מס' 4: המתרגם שימוש במחלקות קיימות מחרוזות, קבצים, וקבלת קלט מהמשתמש

Microsoft Word - c_SimA_MoedB2005.doc

People. Partnership. Trust מסלול Free פורטל החינוך מבית U-BTech מסלולים ומחירים חיבור לשירותי Office 365 ללא עלות פורטל התחברות הכולל ממשק למנב"ס ולסי

תשע"דד אביב תוכנה 1 תרגיל מספר 4 עיבוד מחרוזות וקריאה מקבצים הנחיות כלליות: קראו בעיון את קובץ נהלי הגשת התרגילים אשר נמצא באתר הקורס..(

בס"ד תרגיל 3 מועד אחרון ל כללי בתרגיל זה עליכם לכתוב תוכנה שמדמה מאגר נתונים של חנות. את מוצרי החנות תייצגו באמצעות עצים ורשימות מקושרות יהיה עליכם לנ

Microsoft Word - I900-Tips_and_Tricks

Slide 1

ISI

People. Partnership. Trust שלבי הפרויקט והמסלולים השונים - פלטפורמת "קהילה לומדת" מסלול Free שלבי הפרויקט: חיבור לשירותי Office 365 ללא עלות פורטל התח

שאלה 2. תכנות ב - CShell

שאלהIgal : מערכים דו מימדיים רקורסיה:

2019 שאלות מומלצות לתרגול מס' דיפרנציאביליות של פונקציה סקלרית )המשך(. כלל השרשרת. S = ( x, y, z) z = x + 3y על המשטח מצאו נקודה בה מישור משיק

מטלב לפיסיקאים שיעור 1

Office 365 ProPlus בחינם לסטודנטים באוניברסיטת בן גוריון בנגב הוראות סטודנטים באוניברסיטת בן גוריון בנגב יכולים להוריד ולהתקין את חבילת התוכנה Office

(Microsoft Word - SQL\353\351\345\345\365 \341\361\351\361 \360\372\345\360\351\355 \ doc)

ex1-bash

סדנת תכנות ב C/C++

Microsoft PowerPoint - rec1.ppt

מצגת של PowerPoint

דוגמאות שהוצגו בהרצאה 10 בקורס יסודות מערכות פתוחות דוגמה 1 דוגמאות של פונקציות ב- awk שמראות שהעברת פרמטרים של משתנים פשוטים היא by value והעברת פרמט

הטכניון מכון טכנולוגי לישראל אלגוריתמים 1 )443432( סמסטר חורף הפקולטה למדעי המחשב תרגול 9 מסלולים קלים ביותר תרגיל APSP - 1 עד כה דנו באלגור

פרויקט "רמזור" של קרן אביטל בס "ד מערך שיעור בנושא: "פונקציה" טליה קיפניס והדסה ערמי, מאולפנת צביה פרטים מקדימים על מערך השיעור: השיעור מהווה מבוא לנו

Microsoft Word - sync_LG.doc

מבחן סוף סמסטר מועד א 15/02/08 מרצה אחראית: דר שירלי הלוי גינסברג מתרגלים: גלעד קותיאל, דניאל גנקין הוראות: א. בטופס המבחן 7 עמודים ו 4 דפי נוסחאות. ב

פרויקט שורשים דמות

סדנת חזון משאבי אנוש

Microsoft Word B

Limit

תשובות מלאות לבחינת הבגרות במתמטיקה מועד ג' תשע"ד, מיום 0/8/0610 שאלונים: 313, מוצע על ידי בית הספר לבגרות ולפסיכומטרי של אבירם פלדמן שאלה מספר

Slide 1

Microsoft Word - hedva 806-pitronot-2011.doc

PowerPoint Presentation

Slide 1

עבודה במתמטיקה לכיתה י' 5 יח"ל פסח תשע"ה אפריל 5105 קשה בלימודים, קל במבחנים, קל בחיים עבודה במתמטיקה לכיתה י' 5 יח"ל פסח תשע"ה יש לפתור את כל השאלות

המשימה תרגול מס' 5: קלט-פלט במערכות הפעלה שונות יש סימונים שונים עבור ירידת שורה :)newline( ב- UNIX/Linux )Line Feed( \n ב- Windows )Carriage Return +

Microsoft Word - solutions.doc

290/402//3 המרתמשובשערעולמילקייםמתקןחדשלתקןקיים רקע: קיימיםארבעהמקורותאפשרייםלמיפוילמסרהמשוב: כשהמסרנקלט עלפיהסכימההמתוארתבמסמךהAPIשלכל מסרומסראליומתי

מבוא למדעי המחשב

עמוד 1 מתוך 5 יוחאי אלדור, סטטיסטיקאי סטטיסטיקה תיאורית + לוחות שכיחות בדידים/רציפים בגדול מקצוע הסטטיסטיקה נחלק ל- 2 תחומים עיקריים- סטט

טיפים להצלחה במהלך הבחינה 1. בתחילת הבחינה קראו היטב את כל השאלות וסמנו לעצמכם את השאלות המועדפות על ידכם. קראו כל שאלה לפחות פעמיים, כדי שלא תחמיצו נ

תוצאות סופיות מבחן אלק' פיקוד ובקרה קיץ 2014

Microsoft Word - tutorial Dynamic Programming _Jun_-05.doc

PowerPoint Presentation

SFP6603NRE Dolce Stil Novo תנור פירוליטי 60 ס"מ, זכוכית שחורה +A דרגת אנרגיה EAN13: רכיבים בגימור נחושת פונקציות בישול 10 פונקציות ניקוי

מדריך לחיפוש במאגר JCR Journal Citation Reports מעודכן לדצמבר 2015 כל הזכויות שמורות לתחום היעץ, אוניברסיטת חיפה, הספריה

תוכן העניינים

אוניברסיטת חיפה החוג למדעי המחשב מבוא למדעי המחשב מועד א' סמסטר ב', תשע"ג, משך המבחן: שעתיים וחצי חומר עזר: אסור הנחיות: וודאו כי יש בידיכם

תאריך הבחינה 30

<4D F736F F D20EEE3F8E9EA20ECEEF9FAEEF920ECEEF0E4ECE920E7F9E1E5F0E5FA2E646F63>

תוכן העניינים

<4D F736F F D20FAE5F1F4FA20ECE7E5E5FA20E3F2FA20ECE2E1E920E3E9F1F720FAEEE5F0E5FA20E6E9F8FA20E4F8F6E72E646F63>

תרגיל 5-1

אוניברסיטת חיפה החוג למדעי המחשב מרצה: שולי וינטנר מתרגלים: נעמה טוויטו, מחמוד שריף מבוא למדעי המחשב סמסטר א' תשע"ב בחינת סיום, מועד א', הנחי

Microsoft Word - 01 difernziali razionalit

תרגול מס' 7 – חזרה על MST ואלגוריתם Dijkstra

תוכנה 1 1 אביב תשע"ג תרגיל מספר 5 מערכים, מחרוזות, עיבוד טקסט ומבני בקרה הנחיות כלליות: קראו בעיון את קובץ נהלי הגשת התרגילים אשר נמצא באתר הקורס. הגש

אוניברסיטת חיפה החוג למדעי המחשב.5.6 מבוא למדעי המחשב סמסטר א' תשע"ז בחינה סופית מועד א', מרצה: שולי וינטנר מתרגלים: סמאח אידריס, ראמי עילבו

תאריך פרסום: תאריך הגשה: מבנה נתונים תרגיל 5 )תיאורטי( מרצה ומתרגל אחראים: צחי רוזן, דינה סבטליצקי נהלי הגשת עבודה: -את העבודה יש לה

תמליל:

מימוש ממשק משתמש ע"י GUIDE שיעור מס' 11: שימוש ב- GUIDE - GUIDE ראשי תיבות של - GUI Design Environment הוא כלי ליצירה חצי-אינטראקטיבית של ממשקי-משתמש. תהליך העבודה עם GUIDE הפעלת GUIDE ליצירת ממשק חדש - להפעיל פקודת guide מחלון הפקודות. לעבודה על ממשק קיים: שלבי התהליך להפעיל פקודת guide עם שם הקובץ הגרפי: guide filename.fig או לפתוח context menu כשהסמן על הקובץ הגרפי בחלון הקבצים, ולבחור.open in GUIDE עיצוב ויזואלי/גרפי: קביעת ממדיו של חלון הממשק וכן ממדיהם ומיקומם של פריטי הממשק. התאמת תכונות העצמים הגרפיים בממשק, באמצעות עורך התכונות. העריכה יכולה לקבוע איך העצמים ייראו (למשל גודל גופן), אבל בעיקר חשוב לערוך תכונות הקשורות לתגובת העצמים לפעולות המשתמש ולזיהוי העצמים בתוך התוכנית. שמירת הממשק בשם מסוים. אם הממשק הנשמר חדש, המשתמש מתבקש לבחור שם לקבצים. שמירה נעשית ע"י: בחירת תפריט file ואז save או,save as או הפעלת הממשק ע"י לחיצה על כפתור ההפעלה (משולש ירוק בסרגל הכלים). נוצרים שני קבצים בשם שנבחר:.1.2 קובץ גרפי (בפורמט מטלב מסוג (fig הכולל הן את העיצוב החזותי וכן תכונות לא-חזותיות של העצמים. קובץ-תוכנית mfile עם תבנית מוכנה לפונקציות ה- callback, שהן פונקציות משניות.subfunctions כתיבת תוכניות ה- callback לתוך התבניות שבקובץ. (זה החלק הלא-אינטראקטיבי, והוא עיקר העבודה). הפעלת הממשק הגרפי: הרצת קובץ ה- mfile (עם או בלי ארגומנטים של קלט או פלט). בניית הקובץ הגרפי הוספת עצמים הקשה על כפתור הרצה כאשר הקובץ הגרפי פתוח ב- GUIDE. להוספת עצם לממשק, יש לבחור מסרגל העצמים שבצד שמאל את העצם מהסוג המבוקש ואז: להקיש על העצם בסרגל, ואז לסמן באזור העריכה מלבן שמציין את מימדי העצם ומיקומו, או... עמ' 1 מתוך 8

לגרור את העצם אל אזור העריכה למיקום הרצוי. העצם נוצר בגודל ברירת-מחדל. (אפשר לשנות את גודל העצמים בכל עת). עורך תכונות עורך תפריטים עורך תוכנית רשימת עצמים העצם נוצר עם תכונות ברירת-מחדל. הטקסט המוצג על העצם הוא ברירת המחדל גם של התגית שהעצם יקבל, וגם של הטקסט שיוצג (במקרים שטקסט משויך לעצם). תגיות הן הבסיס להגדרות ולתכנות בעבודה עם GUIDE ולכן מומלץ לשנות ערכי ברירת-מחדל אלה לשמות משמעותיים למתכנת מייד לאחר יצירת העצם. שינוי תכונות עצמים שינוי תכונות נעשה ב Inspector- Property שניתן לפתוח באחת מן האפשרויות הבאות: לבחור Property Inspector מתוך Context Menu (הקשה על עכבר ימני) של העצם. לעריכת תכונות החלון הגרפי כולו, יש להקיש על עכבר ימני כאשר הסמן נמצא בשטח העריכה אך לא מעל עצם כלשהו. הקשה כפולה על העצם. כפתור Property Inspector בסרגל הכלים בקצה העליון של המסך. העצם שייפתח עבורו העורך הוא זה שמסומן כ"נבחר". אם אף עצם לא מסומן, העורך ייפתח על תכונות החלון הגרפי. שינוי התגית נעשה ע"י שינוי ערך שדה Tag בעורך התכונות. שימושי התגית בתכנות הממשק: גישה למזהה handle של העצם באמצעות.guihandles מתן שם לפונקציות callback המשויכות לעצם: אם התגית שנבחרה היא Tag אז הפונקציה שמופעלת כאשר המשתמש בוחר בעצם נקראת Tag_Callback הערה: תכונת ה- Callback נקבעת אוטומטית ע"י GUIDE ולכן אין לשנות אותה באמצעות עורך התכונות. עמ' 2 מתוך 8

שינוי ברירות-מחדל ממשק חדש נוצר עם ברירת-מחדל עבור התכונות הכלליות. תכונות אלה הן: האם החלון הגרפי ניתן לשינוי או שממדיו קבועים (ברירת מחדל). מהם התנאים להעברת הפוקוס לחלון הגרפי של הממשק: כאשר מתבצע Callback (ברירת מחדל) או בתנאים אחרים. o o o האם ליצור רק את העיצוב הגרפי או ליצור גם mfile (ברירת מחדל: שניהם). אם נוצר :mfile האם ליצור תבניות עבור פונקציות Callback (ברירת מחדל: "כן"). האם כל הפעלה של הממשק פותחת חלון גרפי נוסף, או הפעלה יחידה - singleton (ברירת מחדל הפעלה יחידה): הפעלה נוספת כאשר הממשק כבר פתוח מעבירה אליו את הפוקוס (ולא פותחת חלון חדש). האם להשתמש בסכמת הצבעים של המערכת כרקע ("כן" ברירת מחדל). אם רוצים לשנות מאפיינים אלה, יש לעשות זאת לפני שמתחילים לעצב את הממשק, ע"י בחירה מתפריט.tools->GUI Options הערה: גם כאשר עובדים במסגרת של יצירה אוטומטית של תבניות עבור,Callbacks ניתן לערוך את ברירת המחדל עבור תכונת Callback ולכתוב במקומה כל דבר שמתאים לתכונה זו, כפי שתואר בשיעור 10. עבודה בצורה זו איננה מומלצת בדרך כלל, אבל עדיפה כאשר תגובת הממשק פשוטה ביותר ואין צורך בהגדרה מיוחדת של פונקציה. עיצוב קובץ הפקודות עבודה עם פונקציות משניות בקובץ אחד קובץ התוכנית שנוצר באופן אוטומטי ע"י GUIDE כולל את החלקים הבאים: פונקציה ראשית בשם הקובץ.filename תבנית לפונקציה משנית filename_openingfcn תבנית לפונקציה משנית filename_outputfcn תבנית לפונקציות משניות, אחת לכל תגית Tag_Callback (אם לכמה עצמים יש אותה תגית, כולם ישתמש באותו.(Callback יש לזכור שהסביבה הקוראת ל- callbacks היא סביבת מטלב הכללית. מאחר שפונקציות משניות אינן מוכרות לסביבה שמחוץ לקובץ שבו הן מוגדרות, מה מאפשר לסביבת מטלב להשתמש בהן כ- Callbacks? המנגנון שתואר בשיעור 10 לשיוך ה- callbacks לעצמים הרלוונטיים לא מתאים לעבודה עם :GUIDE העצמים לא נוצרים ע"י פקודות Uicontrol כחלק מן הפונקציה הראשית בקובץ; הם נוצרים באופן אינטראקטיבי ונשמרים בקובץ הגרפי, כאשר שיוך ה- callbacks נעשה ע"י.GUIDE הפתרון ש- GUIDE מספק קשור לאופן ההפעלה של קובץ התוכנית. התוכנית מגיבה בהתאם למספר הארגומנטים של קלט המועברים לה:.1.2.3 אם אין ארגומנטים של קלט: לפתוח את הממשק. אם הארגומנט הראשון הוא מחרוזת תווים והשני הוא מזהה לעצם גרפי :(handle) בהנחה שהמחרוזת היא שם של אחת מפונקציות ה- callbacks, להפעיל את הפונקציה. אם הארגומנט הראשון הוא מחוזת תווים ויש יותר מ- 3 ארגומנטים של קלט: להעביר את כל הארגומנטים לטיפול של פונקציית-האתחול (כאן לא נפרט על צורת קריאה זו, פירוט נמצא בתיעוד). עמ' 3 מתוך 8

אפשרות מס' 1 מתאימה לנאמר קודם על אופן הפעלת הממשק. אפשרות מס' 2 פותרת את הבעיה של זיהוי פונקציות משניות באופן הבא: כאשר משתמשים בברירת-מחדל של יצירה אוטומטית של,callbacks מטלב יוצר תכונת- callback עבור העצם כמודגם בצילום-המסך הבא: ראשית רואים שה- callback היא פונקציה אנונימית שמקבלת שני ארגומנטים של קלט: מזהה לעצם hobject ומידע על האירוע.eventdata זו הצורה הסטנדרטית שבה מטלב מפעיל.callbacks שנית, גוף הפונקציה האנונימית הוא למעשה קריאה לקובץ התוכנית (כלומר לפונקציה הראשית בו). הארגומנט הראשון הוא מחרוזת תווים שכוללת את התגית שהוצמדה לעצם + התוספת _Callback (שאר הארגומנטים יתוארו בהמשך). בהתאמה, נוצרת בקובץ הפקודות תבנית לפונקציה בשם זה. התוצאה היא שכאשר הממשק מופעל והעצם הגרפי מייצר אירוע, נקראת הפונקציה הראשית והארגומנט הראשון שמועבר אליה הוא שם ה- callback המתאים. ארגומנט זה מתאים לאפשרות מס' 2 למעלה, ומתבצעת קריאה ל- callback המתאים. הפונקציה הראשית - אין לשנותה הפונקציה הראשית בקובץ, כולל ההסבר על אופן פעולתה (הערות בתחילת הקובץ), נוצרת באופן אוטומטי ע"י,gui_State הפונקציה מיישמת את המנגנון שתואר למעלה. מלבד איסוף-נתונים ושמירתם במשתנה בשם.GUIDE עיקר התהליך מתבצע באמצעות פונקציה מובנית של מטלב בשם.gui_mainfcn פונקציה זו מבצעת בדיקות שונות ומפעילה את פונקציית ה- callback או מעלה את הממשק, בהתאם לקריטריונים שתוארו למעלה. אתחול הממשק כולל את השלבים הבאים: יצירת החלון הגרפי. ברירת-המחדל היא לעשות זאת ע"י פתיחת הקובץ הגרפי שנשמר. (יש אפשרות נוספת שלא נפרט כאן). בשלב זה מתבצעת הפוקנציה CreateFcn עבור כל העצמים הגרפיים. הוספת מידע מ- guihandles למידע הנמצא ב- guidata המשויך לחלון הממשק. הפעלת filename_openingfcn (פונקציה זו מאפשרת למתכנת להוסיף פעולות לשלבי האתחול). הפעלת filename_outputfcn (פונקציה זו מגדירה ארגומנטים של פלט עבור הקובץ הראשי. ברירת המחדל היא ה- handle לחלון הגרפי הכללי). שינוי בקוד הפונקציה הראשית יפגע בפעולה התקינה של הממשק. מבנה פונקציות ה- callback תבנית פונקציה callback נראית כך: Tag הוא ערך התגית המשויכת לעצם. % --- Executes on button press in Tag. function Tag_Callback(hObject, eventdata, handles) % hobject handle to Tag (see GCBO) % eventdata reserved - to be defined in future version of MATLAB % handles structure with handles and user data (see GUIDATA) עמ' 4 מתוך 8

בארגומנט handles נמצא כל המידע שניתן לקבל באמצעות פקודת,guihandles בתוספת שדות שהוגדרו ע"י GUIDE וע"י המשתמש. (עוד על העברת מידע, בהמשך). בעזרת ארגומנט זה, כל אחת מפונקציות ה- callback יכולה לזהות ולגשת לכל אחד מן העצמים בממשק. שני הארגומנטים הראשונים זהים לארגומנטים של callbacks כפי שהוסבר בשיעור 10. דוגמא 1: ממשק פשוט הכולל כפתור-לחיצה אחד ושלושה.radio buttons הממשק ממומש ע"י שני קבצים, d11simplegui h = d11simplegui ו- d11simplegui.m. d11simplegui.fig פתיחת הממשק: פתיחת הממשק וקבלת המזהה לחלון הגרפי h: כל כפתור-רדיו יכול להיות במצב on או.off במצב off ערכו (תכונת (Value שווה לערך תכונת Min ובמצב on ערכו (תכונת (Value שווה לערך תכונת.Max במטלב אין תלות בין שלושת הכפתורי, אולם מקובל להשתמש בכפתורי רדיו כאשר רוצים להראות שרק אחד מהם יכול להיות.on יצירת מצב זה נעשית ע"י תכנות פונקציות ה- callback כך שכל פונקציה ש"מפעילה" את הכפתור עליו המשתמש לחץ, גם "משביתה" את הכפתורים האחרים. לחיצה על כפתור Go רק מציגה בחלון הפקודות הודעה + ערך הארגומנט.handles כלים להעברת מידע בין הפונקציות GUIDE משתמש במנגנון של guidata כדי לשמור מידע, בין השאר על guihandles אבל לא רק. נזכיר את האפשרויות לשמירת מידע שצוינו בשיעור 10: הגדרת כל הפונקציות המשתפות מידע כפונקציות פנימיות של התוכנית הראשית: אפשרות זו לא ישימה כשעובדים עם,GUIDE מאחר שאין לגעת בקוד התוכנית הראשית, ואילו כל ה- callbacks מוגדרות כפונקציות משניות. שמירת המידע המשותף בתכונת UserData שניתן לשייכה לכל עצם גרפי. ישים גם ב- GUIDE. שימוש בעצם מסוג Application Data שניתן לשייכו לכל עצם גרפי. ישים גם ב- GUIDE. שימוש בתכונת guidata אשר משויכת לחלון הגרפי. ניתן להשתמש בתכונה זו גם ב- GUIDE, אבל בזהירות: GUIDE עצמו משתמש בתכונה זו לשמירת handles וכן עוד שדה אחד לפחות.(output) אפשר להוסיף שדות נוספים לצורך שמירת מידע, אבל לא "לדרוך" על המשתנה ולא למחוק שדות קיימים. יש לזכור שלמרות השם handles המשתנה מכיל גם מידע שאיננו מזהים של עצמים גרפיים. כמו-כן יש לעדכן את guidata לאחר כל שינוי שמבוצע ב- handles (בדומה לעדכון UserData או.(Application Data דוגמא 2: ממשק d11heartgui מצייר תמונה של לב, כאשר ניתן לשנות את הפרמטרים של הלב גם ע"י סליידרים וגם ע"י הקלדתם בחלונית טקסט. כמו-כן ניתן לשנות את צבע הלב ע"י בחירה מתפריט. נקודות לציון על המימוש בתוכנה: GUIDE מספק תבניות לפונקציות callback של עצמים הנראים בממשק הגרפי הסטטי. עצמים נוספים, למשל קווים שיש לעדכן בהמשך ו/או שמייצרים אירועים, יש להגדיר בגוף הקובץ וכן לכתוב עבורם callbacks ולשייכם לעצמים אלה. הצורה הגרפית מאותחלת בשלב אתחול הממשק, ובהמשך רק מעדכנים אותה. כל האתחולים מתבצעים ב- Function.Opening עמ' 5 מתוך 8

העברת מידע בין הפונקציות בעזרת Application Data המשויך לחלון הראשי. עבודה עם תפריטים סוגי תפריטים UImenu תפריט המוצג בסרגל התפריטים שלאורך השפה העליונה של החלון הגרפי. הקשה (עכבר שמאלי) על כותרת התפריט גורמת להצגת הפריטים הכלולים בו. תפריט זה משויך לחלון הגרפי. Uicontextmenu תפריט המשויך לעצם גרפי כלשהו, ואיננו מוצג. הקשה של עכבר ימני על העצם שאליו משויך התפריט, גורמת להצגת הפריטים. כל אחד מפריטי התפריט הוא עצם גרפי המשויך לתפריט. ניתן לבנות תפריט ולשייך את ה"שורש" שלו לתפריט אחר, וכך ליצור תפריטים בעלי כמה רמות. הממשק מגיב לבחירת פריט מסוים בהפעלת פונקציית callback המשויכת לפריט זה. עמ' 6 מתוך 8

hm = uimenu('pname','pval',...) hm = uimenu('label','file') hm = uimenu('parent',hfig) hs = uimenu(hm,'label','save mat format') set(hs,'callback',@savematcallback) hc = uicontextmenu set(hline,'uicontextmenu',hc) פקודות לבניית תפריטים הגדרת "שורש" ל- UImenu : ציון כותרת לתפריט: ציון החלון אליו ישויך התפריט: הוספת פריט לתפריט קיים: שיוך callback לפריט: הגדרת "שורש" ל- Uicontextmenu : שיוך Uicontextmenu לעצם גרפי: הוספת פריטים ל- Uicontextmenu נעשית בצורה זהה ל- Uimenu, כלומר ע"י פקודת uimenu כמתואר למעלה. ניתן לציין תכונות נוספות לתפריטים, למשל מיקום (על החלון הגרפי או על סרגל התפריטים). למידע נוסף יש לחפש בתיעוד uimenu properties או.uicontextmenu properties בניית תפריט באמצעות GUIDE יש לפתוח את עורך התפריטים ע"י הקשה על הכפתור המתאים בסרגל הכלים. לבחור בלשונית הרצויה: Menu Bar או.Context Menus לבחירת התפריט יש ללחוץ על הכפתור בסרגל הכלים המסומן בכוכבית * (בכל לשונית פעיל רק הכפתור הרלוונטי ללשונית זו). מומלץ לבחור תגית בעלת משמעות מייד עם יצירת הפריט או התפריט. תפריט Uimenu יופיע בסרגל התפריטים כאשר הממשק יופעל. הוא אינו מופיע במסך העריכה של GUIDE מאחר שסרגל התפריטים איננו חלק מ"תוכן החלון" אלא נחשב לחלק מן ה"מסגרת/כותרת". העלה או הורד הוסף פריט שנה סדר פריטים עמ' 7 מתוך 8

את תפריט Uicontextmenu יש לשייך לעצם הרלוונטי ע"י פקודה, כמתואר בסעיף הקודם. בכל מקרה יש לעשות זאת בשלב האתחול של הממשק (בדרך כלל בפונקציה (Opening function ע"י מציאת המזהה (handle) הן של התפריט והן של העצם, והוספת המזהה של העצם כתכונת Uicontextmenu של העצם. קווים מנחים לעיצוב ממשק משתמש פשטות יש להציג רק מידע נחוץ. עיקרון זה נכון גם למידע המוצג וגם לעצמים לממשק. אם בשלב מסוים חלק מן המידע איננו נחוץ או רלוונטי, יש להעלים אותו. (במקרה של עצמים גרפיים לממשק, יש להשבית את העצמים שאינם רלוונטיים). מיידיות אם ניתן להציג את התוצאות מייד, יש לעשות זאת. למשל לאחר תזוזה של סליידר יש להציג מייד את התוצאה (אם החישוב לא ארוך מדי) ולא להתנות את ההצגה בלחיצה על כפתור "הצג". גמישות במגבלות המקום בחלון הגרפי וכמות המידע שהמשתמש אמור לספק, יש לאפשר חלופות לקליטת מידע (למשל ע"י תיבת טקסט וגם סליידר). עקביות יש לעצב ממשק לפעולות דומות באופן חזותי דומה. כמו-כן יש להשתמש בהליכים מוכרים, למשל בקליטת שם-קובץ מן המשתמש יש להפעיל uigetfile מאחר שהעיצוב של ממשק זה מתאים למוסכמות של המערכת. זה עדיף על עיצוב ייחודי של ממשק להצגת רשימת קבצים לבחירה. טיפול בשגיאות יש לחזות עד כמה שניתן מצבים שונים ולהיערך אליהם. במיוחד הממשק אמור לפעול גם אם המשתמש מגיב בדרכים "שגויות". משוב יש לספק למשתמש משוב על מצב המערכת בכל רגע נתון. בדרך כלל המשוב הוא הצגת התוצאות הרצויות. במקרים בהם קליטת הנתונים מורכבת מכמה שלבים, יש לספק רמזים מהו הצעד הבא. כמו-כן יש לתת משוב על מידע שגוי, לא מתאים או לא מספיק. סוף מעשה במחשבה תחילה... לתכנן מראש את הממשק, לפני שמתחילים בעיצוב בפועל: מהן המטלות. איזה מידע רלוונטי בכל שלב של התהליך, מה חשוב להציג בו-זמנית. איזה מידע המשתמש מספק, ובאילו דרכים (אינטראקטיבי, קריאה מקובץ). אילו עצמים יקלטו מידע מן המשתמש ובאיזו דרך (סליידר, טקסט, כפתור וכו'). איזה מידע יישמר בסופו של דבר, ובאיזו דרך. איך המערכת תגיב לפעולה של המשתמש בכל מצב שבו היא נמצאת. עמ' 8 מתוך 8