שיעור מס' 1: סביבת עבודה חישובים סוגי ביטויים מתמטיים ביטוי מתמטי מורכב מרכיבים )אופרנדים( ומפעולה שנעשית ביניהם )אופרטור(. operand1 operator operand2 operator operand FunctionName(argument) אופרטור בינרי אופרטור אונרי ביטוי פוקנציונלי דוגמא: 3 + 2 דוגמא: 3 דוגמא: log(2) בביטויים פונקציונליים, האופרנד נקרא ארגומנט. האופרטור הוא פונקציה, והארגומנט מופיע בין סוגריים. כתיבת ביטויים מתמטיים 2+3 5 2-3 2*3-1 6 a+b a-b a*b חיבור חיסור כפל a b 2/3 0.6667 a/b a חילוק b 2^3 a^b b חזקה a 8 sqrt(3) sqrt(a) שורש ריבועי a 1.7321 exp(1) exp(a) a אקספוננט e 2.7183 סדר ביצוע הפעולות אופרטורים עם קדימות זהה מבוצעים משמאל לימין. עמ' 1 מתוך 11
סדר קדימות של הפעלת אופרטורים: כמו במתמטיקה. קדימות גבוהה ביותר פונקציה > חזקה ^ > כפל * וחילוק / > חיבור + וחיסור - קדימות נמוכה ביותר כדי לשנות את סדר החישוב, משתמשים בסוגריים עגולים בלבד. sqrt((5*4)^2+1) 5 הביטוי 4 2 1 נכתב: 20.0250 ערכים מוגדרים מראש )להלן כמה דוגמאות שימושיות(. i^2-1 sin(pi/2) 1 atan(inf)/pi 0*Inf NaN NaN*5 NaN 1.25 0.5000 1.2500 50.2e-3 0.0502 5.02e-2 0.0502 2/9500 2.1053e-04 i j 1i 1j i= 1 pi π Inf NaN undefined (Not a Number) כתיבה והצגה של מספרים integer.fraction fixed point נקודה קבועה: mantissaepower mantissa10 power כתיב מדעי: floating point נקודה צפה: כתיב מדעי, כך שהמנטיסה מסדר גודל של אחדות בודדות או של עשיריות )מקום אחד לפני או אחרי הנקודה(. 2/950 0.0021 format הצגת מספרים במטלב: נקודה קבועה עבור מספרים > 1.111 שינוי ברירת המחדל להצגה: פקודת format short 3/990 0.0030 1000/99 נקודה קבועה, מוצגות 1 ספרות אחרי הנקודה עמ' 2 מתוך 11
10.1010 format short e 3/990 3.0303e-03 1000/99 1.0101e+01 format long 3/990 0.003030303030303 1000/99 10.101010101010100 format long e 3/990 3.030303030303030e-03 נקודה צפה, מוצגות 1 ספרות אחרי הנקודה נקודה קבועה, מוצגות 11 ספרות אחרי הנקודה נקודה צפה, מוצגות 11 ספרות אחרי הנקודה מספרים מרוכבים 2+3*j 2.0000 + 3.0000i 5.2-4.1i 5.2000-4.1000i log(-10) 2.3026 + 3.1416i abs(4+3i) 5 angle(2i) 1.5708 real(log(-10)) 2.3026 imag(log(-10)) 3.1416 conj(log(-10)) 2.3026-3.1416i כתיבת מספרים מרוכבים: בחלק הדמיוני אין צורך בסימן כפל מספרים מרוכבים כתוצאות של פעולה על מספרים ממשיים: ערך מוחלט פאזה )זווית עם הציר הממשי( חלק ממשי חלק מדומה צמוד סביבת העבודה של מטלב עמ' 3 מתוך 11
חומרה מבנה סכמטי של מחשב אמצעי אכסון קבועים )דיסק( זכרון עבודה RAM יחידת עיבוד מרכזית CPU )חיווט( Bus אמצעי אכסון נתיקים התקנים היקפיים אחרים חישובים ברמת המכונה העברת מידע מן ה- RAM חישוב בתוך ה- CPU operand1 operator operand2 אכסון התוצאה ב- RAM זיכרון, מידע ומשתנים a a+1 a+2 a+3... מידע מאוכסן בזיכרון לפי המיקום, כלומר כתובת. שפת-תכנות עילית: ציון הכתובות והפעולות על מידע נעשה באופן קריא )לבני-אדם(. משתנה מתחייס לאזור-אכסון בזיכרון, עם המאפיינים: מיקום בזיכרון-העבודה )כתובת( שם - תווית לצורך התייחסות בשפה עילית. ערך - המידע המאוכסן שם המשתנה הוא צירוף של סימנים )בדרך כלל אותיות(. הסימן הראשון חייב להיות אות )אחת מאותיות האלפבית האנגלי(. הסימנים הבאים יכולים להיות אותיות, ספרות או הסימן _ )קו תחתי(. VariableName = value פעולת השמה: אכסון מידע במשתנה. השמה לתוך משתנה מוחקת ערך קודם שהיה מאוכסן בו. g = 9.8, t=10 g = 9.8000 t = 10 x = 0.5*g*t^2 שימוש במשתנה: ציון שם המשתנה בתוך ביטוי גורם לשליפת המידע מן המשתנה ושימוש בו בחישוב הביטוי. עמ' 1 מתוך 11
x = 490.0000 v = 4.2 v = 4.2000 x = x+v*t x = 532 משתנים במטלב a = log(-20) a = 2.9957 + 3.1416i I = imag(a) I = 3.1416 A = a + i A = 2.9957 + 4.1416i a+a 5.9915 + 7.2832i ans+1 6.9915 + 7.2832i a = -2 a = -2 אזור הזיכרון בו מטלב שומר את המשתנים נקרא.Workspace השמה למשתנה שלא היה קיים מקצה את המשתנה בזיכרון. ניסיון לשימוש במשתנה שלא הוקצה הוא שגיאה. בשמות המשתנים במטלב יש הבדל בין אותיות קטנות וגדולות.)case sensitive( בחישוב ללא פעולת השמה, התוצאה נשמרת במשתנה ברירת-מחדל בשם.ans שאלה: מה יהיה ערכו של A לאחר ביצוע ההשמה הבאה: פקודות מטלב לטיפול במשתנים who שימוש: who who הצגת רשימת משתנים בזיכרון העבודה Your variables are: A I a ans שימוש: whos whos הצגת מידע על משתנים whos Name Size Bytes Class Attributes A 1x1 16 double complex I 1x1 8 double a 1x1 8 double ans 1x1 16 double complex clear שימוש: clear clear מחיקת כל המשתנים מזיכרון העבודה clear A a I שימוש:... clear var1 var2 מחיקת משתנים מסוימים מערכים מערך הוא קבוצה מסודרת של רכיבים. הרכיבים יכולים להיות כל סוג של מידע )לא רק מספרים(. כל הרכיבים נמצאים במשתנה אחד. עמ' 1 מתוך 11
מערך עמודה דוגמא: מערך-עמודה 4x1 של ארבעה רכיבים. במטלב, ברירת המחדל לכל משתנה היא מערך דו-ממדי. דוגמא למערך דו-ממדי: מערך 1, 4x3 שורות 3 עמודות. מערכים חד-ממדיים הם מקרה פרטי של מערך דו-ממדי: מערך שורה דוגמא: מערך 1x5 שורה של 1 רכיבים )אלמנטים(. גם סקלר הוא מערך 1x1. במטלב יש משמעות גם למערך nx0 או 0xn עם 1 רכיבים. פקודות ותוכניות פקודה: הוראות לביצוע פעולות הכתובות בשפה עילית. דוגמאות לפעולות המבוצעות ע"י פקודות: חישוב ביטויים מתמטיים, השמת ערכים למשתנים, העתקת מידע מן הזיכרון לדיסק או מן הדיסק לזיכרון ועוד. פקודה מתבצעת בשלבים הבאים: תרגום הפקודה משפה עילית לקוד-מכונה המתאים לחומרה הספיציפית של המחשב )קומפילציה(. אכסון קוד המכונה בזכרון. ביצוע קוד המכונה. תוכנית מחשב: סדרה )סופית( של פקודות. תוכניות מחשב נשמרות בקבצים. דיסק, מידע וקבצים מידע מאוכסן בדיסק בקבצים. קובץ מתייחס לשטח אכסון מסוים על הדיסק, עם המאפיינים הבאים: מיקום על הדיסק. שם - תווית לצורך התייחסות. תוכן - המידע המאוכסן בקובץ. כתיבה לקובץ: העתקת מידע שנמצא במשתנים בזיכרון ואחסונו בקובץ הנמצא בדיסק. קריאה מקובץ: טעינת מידע מקובץ הנמצא על הדיסק אל משתנים הנמצאים בזיכרון. סוגי קבצים סוג הקובץ מצוין בדרך כלל ע"י הסיומת שלו.)extention( אופן שמירת המידע בקובץ: קבצי טקסט:.)ascii כוללים רק סימנים ניתנים להצגה )תווים,.)NotePad ניתנים להצגה ועריכה ע"י כל עורך טקסט )למשל קבצים בינאריים: כתובים בפורמט ייחודי לתוכנה שייצרה אותם )ולכן ניתנים לפתיחה ועריכה רק ע"י התוכנה(. פורמטים מוכרים במטלב עמ' 6 מתוך 11
o o o o תוכניות מטלב: קבצי טקסט עם סיומת m. )לכן נקראים.)m-files קבצי משתנים, בהם מטלב שומר משתנים בפורמט שבו הם נמצאים בזכרון העבודה. סיומת.mat פורמטים שאינם ייחודיים למטלב, למשל: קבצי טקסט )למשל טבלאות מספריות(. תמונות )פורמטים גרפיים(, למשל jpg, bmp, gif קבצי קול )למשל )wav גיליונות חישוב, למשל אקסל פקודות פשוטות לקריאה וכתיבה מקובץ הפקודות הבאות יוצרות משתנים ממידע הנמצא בקבצים משני סוגים: פקודה א. קובץ.mat - מניחים שזה הפורמט הפנימי של מטלב, אם בפקודה לא מצוינת הסיומת. ב. קובץ טקסט המכיל רק מידע נומרי, המסודר בצורה של מערך דו-ממדי אחד. )ניסיון לקרוא קבצי טקסט בפורמט אחר, למשל קבצים הכוללים טקסט לא נומרי, יגרום לשגיאה(. אם בפקודה מצוינת כל סיומת למעט,mat מטלב ינסה לקרוא את הקובץ בהנחה שהוא טקסט נומרי בפורמט של מטריצה אחת. load תיאור קריאת משתנים מקובץ בפורמט מטלב.mat קריאת מטריצה נומרית מקובץ טקסט. פעולה המשתנים נקראים מן הקובץ לזיכרון העבודה. המטריצה נקראת למשתנה ששמו כשם הקובץ )ללא הסיומת( דוגמא clear load arrays who Your variables are: A B C D E I M R S b c s t v clear load Mhtable.txt whos Name Size Bytes Class Attributes Mhtable 1502x30 360480 double save שמירת כל המשתנים לקובץ matlab.mat Saving to: D:\mbooks\course\eng\data-files\matlab.mat save myvars שמירת כל המשתנים לקובץ מסוים save שמירת משתנים לקובץ mat שמירת משתנים לקובץ טקסט פקודות לשימוש בתיעוד/עזרה שמירת משתנים מסוימים לקובץ מסוים המשתנים נכתבים לקובץ בזה אחרי זה. יש להוסיף פרמטר ascii לתרגום מבינארי לטקסט. save file R S s save file.txt A C ascii help sqrt SQRT Square root. SQRT(X) is the square root of the elements of X. Complex results are produced if X is not positive. See also SQRTM, REALSQRT, HYPOT. Overloaded methods: codistributed/sqrt gpuarray/sqrt Reference page in Help browser doc sqrt עמ' 7 מתוך 11
כלי שולחן-העבודה של מטלב שולחן העבודה desktop משטחים ותפריטים תפריט תלוי-הקשר context menu עיגון dock ושחרור undock משטח חלון העבודה command window מציג פקודות + תוצאות סימון תחביר בצבעים בדיקת זוגיות )סוגריים וסימנים נוספים( איחזור פקודות קודמות: ע"י מקש השלמת שמות ע"י מקש TAB תזכורת לפורמט של פקודות חלון זיכרון העבודה workspace רשימת משתנים מחיקת משתנים, שינוי שם, שמירה לקובץ שרטוט פתיחת המשתנה בחלון variable חלון הקבצים current folder פתיחת קובץ: לפי הקשר בעורך של מטלב )טקסט( מחוץ למטלב כלי ייבוא מקובץ:.import data דוגמאות: קריאת משתנים מקובץ LDGWsineGW.mat :mat קריאת מערכי עמודה מקובץ טקסט: LDGW.txt קריאת מערכי עמודה מקובץ אקסל: births.xls קריאת משתנים מקובץ הקלטה קולית: mdbp0-si1788.wav קריאת מערך תלת-ממדי מקובץ תמונה: circle1.jpg? הצגה מקובצת של קבצים חיפוש טקסט בכל הקבצים מערכת התיעוד f x הקשה על בחלון העבודה פתיחת מערכת העזרה במקש חלון history רשימת פקודות קודמות ביצוע העתקה לחלון העבודה העתקה לקובץ תוכנית עמ' 8 מתוך 11 באזור Resources בסרגל.Home
כתיבה, עריכה והרצה של סקריפט תוכניות במטלב תוכנית במטלב יכולה לכלול כמעט כל פקודה שניתן לבצע מחלון העבודה. התוכנית כתובה בקובץ טקסט בעל סיומת m )ולכן נקרא גם.)mfile למטלב עורך תוכניות מובנה, אולם ניתן לערוך תוכנית מטלב בכל עורך טקסטואלי. הפעלת התוכנית: כתיבת שם הקובץ )ללא הסיומת( בחלון הפקודות. למעשה כל תוכנית במטלב יוצרת פקודה חדשה. שם הפקודה הוא כשם הקובץ )ללא הסיומת(. לאחר שכל הפקודות בקובץ מתבצעות, הביצוע חוזר לסביבה בה הופעלה הפקודה. קבצי תוכנית mfiles כללי תחביר ); כל פקודה מתחילה בשורה חדשה. )ניתן לכתוב כמה פקודות בשורה ע"י הפרדתן ב-, או )3 נקודות( מסמן שהפקודה ממשיכה בשורה הבאה. ניתן לכתוב פקודה בכמה שורות. הסימן... כל טקסט שבא אחרי סימן % נחשב להערה, עד לסוף השורה. מומלץ לסיים ב- ; את כל פקודות ההשמה בקבצי תוכנית, למעט פקודות שמעוניינים במפורש להציג את תוצאותיהן תוך כדי ביצוע. יצירת קובץ תוכנית פתיחת קובץ ריק: כפתור New script באזור File בסרגל Home כתיבת פקודות שימוש בפקודות שבוצעו בחלון העבודה: לבחור את הפקודות מחלון Command History להפעיל context menu ולבחור Create M-File שמירה: בחלון העורך בסרגל EDITOR באזור,File לחיצה על תפריט save ובחירת.save as סקריפט script סקריפט הוא קובץ mfile שהפקודות בו מבוצעות כאילו הופעלו מחלון הפקודות. הסקריפט משתמש במרחב המשתנים הכללי של מטלב :)base( ניתן להשתמש בסקריפט במשתנים שהוגדרו לפני הרצתו. כל המשתנים שנוצרים ע"י הסקריפט נשארים במרחב המשתנים הכללי גם לאחר שהריצה הסתיימה. הסקריפט יכול לשנות משתנים במרחב הכללי. clear load LDGWsineGW.mat whos Name Size Bytes Class Attributes Sm 1x1 8 double T 1456x1 11648 double deer 1456x1 11648 double grass 1456x1 11648 double lions 1456x1 11648 double water 1456x1 11648 double plot(t,deer) save LDGWpart T water grass deer d1mat דוגמא 1: נבצע את הפקודות הבאות: נשמור את הפקודות בקובץ d1mat.m הפעלת הקובץ: עמ' 9 מתוך 11
ln x d1approx 1 2 1 3 דוגמא 2: הסקריפט d1approx.m מחשב את הקירוב x 1 x 1 2 x 1 3 x 1 4 x 1 5 x = 1.1000 exact = 0.0953 a1 = 0.1000 e1 = -0.0047 a2 = 0.0950 e2 = 3.1018e-04 a3 = 0.0953 e3 = -2.3154e-05 a4 = 0.0953 e4 = 1.8465e-06 a5 = 0.0953 e5 = -1.5353e-07 1 4 1 5 מסדר 1 עד סדר 1, וכן את השגיאה בכל סדר. הפעלת הסקריפט: עמ' 11 מתוך 11