The MATLAB Notebook v1.6

מסמכים קשורים
ייבוא וייצוא של קבצי אקסל וטקסט

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

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

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

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

PowerPoint Presentation

HTML - Hipper Text Makeup Language

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

Slide 1

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

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

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

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

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

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

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

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

<4D F736F F D20E7E5F7E920E0E9EEE5FA20E1E8E1ECE42E646F63>

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

מצגת של PowerPoint

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

Slide 1

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

Microsoft Word - Ass1Bgu2019b_java docx

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

PowerPoint Presentation

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

PowerPoint Presentation

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

Slide 1

מבוא לתכנות ב- JAVA תרגול 7

T01-1page

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

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

ex1-bash

Microsoft Word - tips and tricks - wave 5.doc

תרגול 1

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

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

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

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

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

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

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

מערכות הפעלה קורס מס'

The MATLAB Notebook v1.6

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

מבחן 7002 פרטים כלליים מועד הבחינה: בכל זמן מספר השאלון: 1 משך הבחינה: 3 שעות חומר עזר בשימוש: הכל )ספרים ומחברות( המלצות: קרא המלצות לפני הבחינה ובדי

הגשה תוך שבוע בשעת התרגול

<4D F736F F D20FAE5F1F4FA20ECE7E5E5FA20E3F2FA20ECE2E1E920E3E9F1F720FAEEE5F0E5FA20E6E9F8FA20E4F8F6E72E646F63>

PowerPoint Presentation

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

PowerPoint Presentation

שקופית 1

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

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

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

תוכנה 1 אביב תשע"ח תרגיל מספר 8 אוספים גנריים ו- framework collection הנחיות כלליות: קראו בעיון את קובץ נהלי הגשת התרגילים אשר נמצא באתר הקורס. הגשת ה

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

מספר זהות: סמסטר ב' מועד א' תאריך: 11102/4// שעה: 9:22 משך הבחינה: 3 שעות חומר עזר: אין מותר השימוש במחשבון פשוט בחינה בקורס: מבני נתונים מרצה: הדר בי

תרגיל בית מספר 1#

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

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

Slide 1

אוניברסיטת תל אביב - בית הספר למדעי המחשב מבוא מורחב למדעי המחשב, אביב 2019 תרגיל בית מספר - 2 להגשה עד 02/04/2019 בשעה 23:55 קיראו בעיון את הנחיות הע

PowerPoint Presentation

Slide 1

Microsoft Word - sync_LG.doc

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

Microsoft Word - ExamA_Final_Solution.docx

PowerPoint Presentation

שעור 6

Slide 1

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

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

Tutorial 11

PowerPoint Presentation

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

מהוא לתכנות ב- JAVA מעבדה 3

מספר מחברת: עמוד 1 מתוך 11 ת"ז: תשע"א מועד ב סמסטר א' תאריך: 00:11 שעה: 0 שעות הבחינה: משך כל חומר עזר אסור בשימוש בחינה בקורס: מבוא למדעי ה

Microsoft PowerPoint - T-10.ppt [Compatibility Mode]

PowerPoint Presentation

תכנות בשפת פייתון ברק גונן

תרגיל בית מספר 1#

Microsoft Word B

Microsoft Word - c_SimA_MoedB2005.doc

פתרון מוצע לבחינת מה"ט ב_שפת c מועד ב אביב תשע"ט, אפריל 2019 מחברת: גב' זהבה לביא, מכללת אורט רחובות שאלה מספר 1 מוגדרת מחרוזת המורכבת מהספרות 0 עד 9.

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

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

Microsoft PowerPoint - rec3.ppt

Slide 1

regular_expression_examples

Microsoft Word - lec

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

234114

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

תמליל:

נתונים טקסטואליים שיעור מס' 5: משתני טקסט נתונים טקסטואליים מופיעים בהקשרים הבאים: נתונים לתוכנית. לדוגמא: שמות אנשים, ערים, מוצרים וכו' וכן טקסטים שלמים למשל ספרים. שמות בקוד עצמו. לדוגמא: שמות משתנים, קבצים. אנוטציה בגרפיקה: כותרות לצירים ולגרף, מקרא, טקסט חופשי. מאפיינים שונים לפעולות בתוכנית. לדוגמא: סימונים לצבעים ולסגנון קו בגרפיקה )פקודת,)plot פורמט כתיבה לקובץ גרפי )פקודת,)print וכן פקודות שנראה בהמשך שיעור זה. מהם תווים ומחרוזות תווים תו הוא יחידת-מידע שמתייחסת לסימן גרפי. דוגמה פשוטה לתו היא אחת מאותיות האלפבית. תווים כוללים גם את סימני הספרות, סימני פיסוק, סימנים מיוחדים )למשל @ או $(, וכן סימן רווח. תווי-בקרה הם תווים שאינם ניתנים לקריאה אבל מסמנים הוראות להצגה של תווים אחרים, לדוגמא: מעבר לשורה חדשה, קפיצה )סימן טאב(, חזרה אחורה מקום אחד ועוד. במחשב תווים מיוצגים ע"י קודים, שהם ערכים מספריים. ההתאמה בין התווים לקודים שלהם נקראת קידוד. קיימות כיום מערכות קידוד רבות, ביניהן קוד UTF8,ascii ועוד. בגירסאות מוקדמות של מטלב הוכר רק קידוד.ascii כיום ניתן לעבוד עם כל קידוד המוכר ע"י המערכת, כאשר ניתן גם לשנות את ברירת המחדל לקידוד. מחרוזת תווים היא שורה מסודרת של תווים. דוגמא פשוטה היא שורת-טקסט. במטלב מחרוזת תווים היא מערך חד-ממדי של תווים. )במטלב ניתן ליצור גם מערכי תווים רב-ממדיים(. מטלב מציין קבועי-מחרוזת )מחרוזות שהן חלק מן התוכנית עצמה( בצבע ייחודי. עבודה עם משתני טקסט יצירת מחרוזות בדומה לנתונים מספריים, אפשרות אחת ליצירת משתני מחרוזת היא קריאה מקובץ )על כך בהמשך(. ליצירת מחרוזות בתוך התוכנית, הצורה הנפוצה ביותר היא ע"י כתיבת האותיות בין גרשיים. ליצירת תו בודד: ליצירת מחרוזת: mychar = '!' mychar =! mysay = 'This is a string' mysay = This is a string שיעור 5 עמ' 1 מתוך 11

char(80) P יצירת תו מתוך הקידוד שלו יצירת מחרוזת מתוך סדרת קודים יצירת מחרוזת של n תווי רווח המרה ממספר למחרוזת, כלומר: מחרוזת התווים שמייצגת באופן קריא את המספר לכלול לא יותר מ- n ספרות משמעותיות: המרה למחרוזת של החלק השלם בלבד של מספר )החלק השברי מושמט( פעולות-מערך על מחרוזות char(40:50) ()*+,-./012 blanks(n) num2str(x) num2str(x,n) int2str(x) מאחר שמחרוזות הן מערכים, כל הפעולות המוגדרות במטלב על מערכים מוגדרות גם על מחרוזות. למשל שרשור: כך יש לבנות טקסט להצגת מספר: שליפת חלק ממחרוזת: ניתן ליצור גם מערכי תווים דו-ממדיים, אבל רק אם כל המחרוזות באותו אורך. )אם לא, ניתן "לרפד" את המחרוזות הקצרות יותר ברווחים. צורת עבודה זו פחות נוחה ובהמשך נכיר סוגי משתנים שמתאימים יותר לעבודות עם קבוצות של מחרוזות(. yoursay = [mysay mychar] yoursay = This is a string! x = 3.5; msg = ['The value of x is: ' num2str(x)] msg = The value of x is: 3.5 yoursay(3:7) is is names=['ruthi';'moshe';'avram';'dana '] names = Ruthi Moshe Avram Dana דוגמא 1: שרשרת DNA בנויה משני "גדילים" המחוברים ביניהם לאורכם. כל "גדיל" בנוי מסדרה של בסיסים שמסומנים באותיות.G,A,T,C הגדילים מאורגנים כך שמול הבסיס G בגדיל אחד נמצא הבסיס DNA מייצג שרשרת d5pairs הסקריפט A. נמצא T ומול T נמצא A מול G, נמצא C בגדיל שני, מול C באורך n ע"י שתי שורות של אותיות )כל "גדיל" בשורה( כלומר מערך.2xn את השורה הראשונה "מגרילים" באופן אקראי, ואת השורה השנייה בונים בהתאם לשורה הראשונה. שיעור 5 עמ' 2 מתוך 11

פקודות לטיפול במחרוזות קיימות פקודות רבות לטיפול במחרוזות. לרשימה מלאה, יש לחפש בתיעוד לפי.strings להלן כמה מן הפקודות השכיחות: strtrim(strng) הסרת כל הרווחים לפני הסימן הראשון ואחרי הסימן האחרון שאינם רווחים. )משאירה רווחים בין הסימנים שאינם רווחים(. str2double('5.1e-3') המרה ממחרוזת למספר אחד. אם המחרוזת לא מצייגת מספר, מתקבל.NaN 0.0051 str2num(strng) strfind(strall,substr) strfind(mysay,'is') 3 6 strcmp(str1,str2) המרה ממחרוזת למספר/ים )יכול לפענח גם סדרה של מספרים(. חיפוש מחרוזת substr בתוך מחרוזת אחרת.strall אם נמצא, מתקבל האינדקס בתוך strall שבו נמצא התו הראשון של.substr )אם יותר מפעם אחת, מתקבל מערך של אינדקסים(. השוואה בין שתי מחרוזות. מתקבל true אם שתי המחרוזות זהות, false אחרת. שאלה: מדוע לא מספיקה השוואה == ויש להשתמש בפקודת?strcmp עבודה עם קבצים קובץ הוא אוסף של נתונים שהמערכת מתייחסת אליו כאל יחידה אחת. לקובץ מספר מאפיינים, לדוגמא: שם הקובץ תוכן הקובץ - המידע הנמצא על אמצעי האכסון. גודל הקובץ - מס' הבתים שתופס באמצעי-האכסון. תאריכים )יצירה, שינוי(. הרשאות )אילו משתמשים רשאים לעשות בו פעולות שונות(. מידע על מיקום הקובץ באמצעי האכסון: מידע זה שקוף למשתמש, ונמצא בניהול המערכת. תיקייה היא סוג מיוחד של קובץ, שכולל מידע על קבצים אחרים. קבצים אלה שייכים לתיקייה )נמצאים בתוכה(. חלק מן הקבצים יכול להיות תיקיות. קיים סימון של המערכת ל"שיוך" של קובץ לתיקייה: הסימן \ במערכת Windows והסימן / במערכת C, נמצא ברמה העליונה של דיסק פירושו שהתיקייה lib1 c:\lib1\lib2\myfile.txt לדוגמא.Linux התיקייה lib2 נמצאת בתיקייה lib1 והקובץ myfile.txt נמצא בתיקייה.lib2 path הוא ה"מסלול" שמוביל מהרמה העליונה של אמצעי האכסון לתיקייה שבה נמצא קובץ, במקרה שלמעלה c:\lib1\lib2 שם מלא של קובץ כולל גם את השם וגם את ה- path, כלומר c:\lib1\lib2\myfile.txt שיעור 5 עמ' 1 מתוך 11

פקודות מערכת לטיפול בקבצים לרשימה המלאה של פקודות לטיפול בקבצים, יש לחפש files בתיעוד. להלן כמה פקודות שימושיות. הארגומנטים של קלט ו/או פלט בכל הפקודות הבאות הם מחרוזות תוים )שמות של קבצים(: ה- path המלא לתיקייה בה נמצאים. מעבר לתיקייה.mydir אם אין path מלא, מטלב מחפש את mydir תחת התיקייה הקיימת. מחיקת קובץ myfile העתקת קובץ ffrom לקובץ fto בניית שם מלא של קובץ מחלקיו, תוך הכנסת סימן התיקייה pwd cd mydir delete myfile copyfile ffrom fto fullfile fdir fname fullfile data-files pictures pic1.png data-files\pictures\pic1.png המתאים למערכת,Windows( Linux וכו'(. לדוגמא: פורמט פונקציה לעומת פורמט פקודה במטלב אפשר לכתוב פקודות בשתי צורות: פורמט פקודה הארגומנטים מפוענחים כטקסט command arg1 arg2 לא מתקבל פלט שניתן לשמור במשתנה. שמות ספציפיים הם חלק מן הפקודה. פורמט פונקציה command(arg1,arg2) save results.txt alltab -ascii תמיד יווצר קובץ בשם results.txt תמיד יווצר משתנה בשם acid.txt מה שלא מוגדר בין גרשיים, מפוענח כקלט רגיל: אותיות כשמות משתנים, מספרים כמספרים. פלט יתקבל לפי הגדרת הפקודה. מאפשר גמישות כאשר שמות ניתנים ע"י משתני מחרוזת. save(myfile,'alltab','-ascii') המשתנה alltab ייכתב לקובץ ששמו הוא המחרוזת במשנה.myfile spectra = load(myfile) ייקרא תוכנו של הקובץ ששמו הוא המחרוזת שבמשתנה.myfile load acid.txt print myplot.pdf -dpdf תמיד יווצר קובץ בשם.myplot.pdf מעבר לתיקייה.mydir אחרי הקריאה הנתונים נשמרים במשתנה.spectra print(myplot,'-dpdf') הפלוט יישמר בפורמט PDF בקובץ ששמו הוא המחרוזת שבמשתנה.myplot cd(mydir) מעבר לתיקייה ששמה הוא המחרוזת שבמשתנה.mydir cd mydir copyfile a.txt b.txt תמיד יועתק קובץ a.txt לקובץ.b.txt copyfile(file_a,file_b) הקובץ ששמו הוא המחרוזת במשתנה file_a יועתק לקובץ ששמו הוא המחרוזת במשתנה.file_b שיעור 5 עמ' 4 מתוך 11

בחירת קובץ מתוך רשימה הפקודות הבאות מציגות למשתמש רשימה של קבצים לפי קריטריון מסוים,)pattern( ועוצרות את התוכנית עד שהמשתמש בוחר באמצעות העכבר את אחד הקבצים. המשתמש יכול לעבור לתיקיות אחרות, גם כאלה שנמצאות מעל לתיקייה הנוכחית. מתקבל שם-קובץ )אותו אפשר לשמור במשתנה מחרוזת(. בחירת קובץ לקריאה: יש לבחור שם קובץ קיים. uigetfile(pattern,title) [FName,PName] = בחירת קובץ לשמירה: ניתן לבחור שם קיים או uiputfile(pattern,title) [FName,PName] = להזין שם שאינו קיים. Pname = uigetdir(start_path,title) בחירת תיקייה: בכל הפקודות האלה: FName שם קובץ )ללא.)path PName שם של תיקייה, בצורת path מלא. תבנית לבחירה, בדרך כלל בשילוב * המסמן תווים כלשהם. pattern כדי לאפשר בחירת קובץ כלשהו בתיקייה כלשהי, יש לציין *.* title כותרת, טקסט על פס-הכותרת של חלונית הבחירה. ניתן להשמיט title ואז תופיע כותרת ברירת-מחדל. ניתן להשמיט Pname ואז ידוע רק שם הקובץ )לא מומלץ, מאחר שאין לצפות את תגובת המשתמש(. דוגמא 2: הסקריפט d5plot_neuron_step מבצע את הדברים הבאים: א. נותן למשתמש לבחור קובץ מתוך רשימת קבצי.neuron_step*.mat ב. קורא את הקובץ, ומשרטט את המתח כפונקציה של הזמן. ג. מוצא את נקודת המקסימום ומוסיף על הגרף ליד נקודה זו את ערכי הזמן והמתח. ד. מוצא את עצמת הזרם וכותב את ערכה ככותרת לגרף. ה. מצייר קו מרוסק בנקודת הזמן שהזרם מפסיק. ו. שומר את הציור לקובץ, כאשר שם הקובץ כולל את עצמת הזרם וזמן הערור. קלט/פלט קלט מן המשתמש קלט מן המקלדת: פקודת input מציגה מחרוזת תווים,prompt עוצרת את ביצוע התכנית ומאפשרת למשתמש להקיש על המקלדת. לאחר שהמשתמש מקיש על,<ENTER> כל מה שהוקש מהצגת ה- prompt ועד מקש זה, מתקבל כפלט של הפקודה. קיימות שתי צורות לפקודה: resp = input(prompt) קלט מפוענח: מטלב מנסה לפענח את התווים שהוקשו כאילו הוקלדו בחלון הפקודות, והתוצאה נשמרת במשתנה.resp raw = input(prompt.'-') קלט גולמי: התווים מועברים למשתנה raw כפי שהוקשו. שיעור 5 עמ' 5 מתוך 11

בחירת אפשרות מתוך תפריט: פקודת menu מציגה חלונית עם עמודה של כפתורים, עוצרת את ביצוע התוכנית ומאפשרת למשתמש להקיש על אחד מן הכפתורים עם העכבר. הפלט n של הפקודה הוא המספר הסידורי של הכפתור עליו הוקש. n = menu(title,b1,b2,...,bn) אופן השימוש בפקודה: title כותרת, טקסט שיופיע מעל עמודת הכפתורים. b1, b2,...bn מחרוזות טקסט, כל אחת תווית על כפתור בתפריט. דוגמא 3: הסקריפט d5births מבצע את הדברים הבאים: א. קורא נתוני לידות מקובץ ומציג כפונקציה של הזמן את נתוני כל החודשים. ב. נותן למשתמש לבחור עמודה, צבע ומרקר. ג. חוזר על הבחירה עבור חודש נוסף. ד. מנקה את הפלוט, מצייר רק את נתוני שני החודשים שנבחרו, עם הצבעים והמרקרים שנבחרו, ומציג מקרא. קלט/פלט מפורש עד כה הכרנו פקודות שמבצעות קלט/פלט על קובץ שלם, בצורה שקופה לתוכנית. הפקודות בהמשך מאפשרות לקרוא או לכתוב לקובץ בשלבים. כל קובץ מסתיים בסימן end-of-file המציין למערכת את קצה הנתונים בקובץ. )זה אינו מספר או אחד מן הסימנים האפשריים כחלק מן הנתונים(. בכל רגע נתון בטיפול בקובץ, המערכת קוראת או כותבת למקום מסוים בקובץ. המערכת עוקבת אחרי מקום זה באמצעות ה- pointer.file בדרך כלל, פעולת כתיבה או קריאה בודדת לא מתבצעת ישירות לאמצעי-האכסון, אלא ל"חוצץ" :)buffer( אזור שבו המערכת מכינה את הנתונים הנקראים/נכתבים לקובץ. במטלב פעולה זו שקופה למשתמש. הליך קריאה או כתיבה לקובץ כולל את השלבים הבאים: פתיחת הקובץ: מציאת הקובץ לפי שם מלא, איסוף מידע )מקום פיסי של הקובץ ומאפיינים נוספים(, הקצאת ה- buffer, הצבת ה- pointer file בהתחלת הקובץ. כל המידע הזה שקוף למשתמש, וניתן לגשת לקובץ רק ע"י מציין File-ID שמצביע על אוסף המידע שהמערכת שומרת לגבי הקובץ בכל זמן עיבודו. כתיבה או קריאה לקובץ )אפשר יותר מפעולה אחת(. סגירת הקובץ: כתיבת ה- buffer לאמצעי האכסון, כתיבת end-of-file )אם רלוונטי(. תוכנית שמשתמשת בקלט/פלט מפורש כוללת פקודות המבצעות את השלבים האלה. הפקודות לפתיחה וסגירה של קובץ הן: שיעור 5 עמ' 6 מתוך 11

fid = fopen(filename, action) פתיחת קובץ: fid מציין לקובץ )להתייחסות בהמשך( filename שם הקובץ action הפעולה/ות לביצוע בקובץ אפשרויות עבור :action 'r' קריאה )ברירת מחדל( 'w' כתיבה )גם על קובץ קיים( 'a' הוספה לקובץ קיים )אם יש( אפשרויות נוספות מפורטות בתיעוד של הפקודה. fclose(fid) סגירת קובץ: סגירת כל הקבצים הפתוחים: fclose('all') קלט/פלט מקבצי טקסט קבצי טקסט כוללים רק קודים של תווים. למרות שהקבצים מוצגים "בצורה דו ממדית" כלומר כאוסף של שורות זו מתחת לזו, כל קובץ הוא סדרה אחת של תווים. השורות מופרדות ביניהן בקובץ ע"י סימן 'n\'. שמצויין בתוכנית מטלב ע"י newline הערה: בטיפול בקבצי טקסט במערכת,Windows לפעמים יש להוסיף מציין 't' ל- action בפקודת fopen לקובץ טקסט כדי שתוכנת NotePad תקרא את הקובץ כהלכה. לדוגמא, במקום 'r' לכתוב.'rt' )בקבצי טקסט ב- Windows יש '\n\r' כלומר גם חזרה לראשית השורה במקום רק 'n\' כלומר מעבר לשורה חדשה(. קריאה של שורת טקסט strng = fgetl(fid) קריאת מחרוזת תווים מהמקום הנוכחי בקובץ ועד סוף השורה. strng אם נקראו תווים: מחרוזת תווים )לאחר קידוד אך ללא פענוח תוכן(. אם לא נשארו תווים עד סוף הקובץ: מספר = 1-. קריאה וכתיבה של טקסט לפי פורמט הפורמט מציין את אופן ההמרה בין ייצוג פנימי )בינארי( של משתנים במטלב לטקסט קריא )מחרוזות תווים(. פקודת format במטלב שהכרנו בשיעורים קודמים מגדירה כמה צורות המרה נתונות, לצורך הצגה בחלון הפקודות. קלט/פלט מפורש מאפשר ציון מגוון רחב יותר של פורמטים. פורמט במטלב הוא מחרוזת תווים. המחרוזת יכולה לכלול "תווים חופשיים" אשר לא מתפענחים )נקראים או נכתבים כפי שהם מופיעים בפורמט(, וכן "שדות" שכל אחד מהם מגדיר צורת המרה לגודל סקלרי )מספר או מחרוזת( אחד. בתוך הפורמט, מזהים את התחלת השדה בסימן % ואת סוף השדה לפי קוד ההמרה. כמו-כן אפשר לציין את רוחב השדה w שהוא מספר התווים שהשדה יתפוס לאחר המרה, וכן מאפיינים נוספים הרלוונטיים לכל סוג. במידה ורוחב השדה עולה על מספר התווים הנוצרים מן ההמרה, התווים מיושרים לימין ו"מרופדים" בתווי רווח משמאל. שיעור 5 עמ' 7 מתוך 11

fprintf(fid,format,a1,...,an) %c %s %ws %d %wd %0wd %f %w.pf %0w.pf %e %w.pe %0w.pe להלן כמה סוגי שדות ומאפיינים נפוצים: תו בודד מחרוזת תווים רוחב שדה w מספר )עשרוני( שלם רוחב שדה w "ריפוד" באפסים במקום בתווי רווח. מספר עשרוני עם נקודה קבועה. רוחב שדה w, מתוכו p ספרות אחרי הנקודה "ריפוד" באפסים במקום בתווי רווח. מספר עשרוני עם נקודה צפה. רוחב שדה w, מתוכו p ספרות אחרי הנקודה "ריפוד" באפסים במקום בתווי רווח. כתיבה ע"י פורמט הפקודה לכתיבה לקובץ היא: fid מציין לקובץ. אם מושמט, הפלט נכתב לחלון הפקודות. format מחרוזת הפורמט A1,A2,...An ערכים להמרה. יכולים להיות ביטויים כלשהם )לא רק שמות משתנים(. מטלב עובר על כל הערכים במשתנים )לפי הסדר שבו הם מופיעים בפקודה( ובהתאמה על כל השדות שבפורמט. כל ערך מומר בהתאם למאפייני השדה המתאים בפורמט. אם משתנה הוא מערך, אז קודם ממירים את כל האיברים שלו ורק אז עוברים למשתנה הבא. במקרה של מערך עם 2 ממדים או יותר, עוברים על כל האברים בסדר שבו הם נמצאים בזיכרון - לפי עמודות. אם השדות בפורמט "נגמרים" לפני שהומרו כל הערכים שבמשתנים, מטלב עושה בפורמט "שימוש חוזר". לדוגמא: fmt = ' Col < %5.3f %5.1e %5.2f >\n'; fprintf(fmt,rnd) rnd = rand(3,4) rnd = Col < 0.957 4.9e-01 0.80 > 0.9572 0.1419 0.7922 0.0357 Col < 0.142 4.2e-01 0.92 > 0.4854 0.4218 0.9595 0.8491 Col < 0.792 9.6e-01 0.66 > Col < 0.036 8.5e-01 0.93 > 0.8003 0.9157 0.6557 0.9340 שיעור 5 עמ' 8 מתוך 11

קריאה ע"י פורמט ניתן לקרוא רק משתנה אחד. אם כל הנתונים בקובץ מאותו סוג, ניתן לקרוא מערך בפקודה אחת. A = fscanf(fid,format) הנתונים שנקראו מהקובץ נשמרים במשתנה A. A = fscanf(fileid, format, sa) ציון מספר האיברים )לכל היותר( לקריאה. A = fscanf(fileid, format, [m,n]) ציון הממדים של m A: שורות, n עמודות. אם n=inf אז קוראים עד סוף הקובץ. במקרה שהפורמט כולל תווים מפורשים, מטלב מחפש את התווים האלה בקובץ, מדלג עליהם וממשיך לפענח את הקובץ לפי השדה שאחרי התווים. דוגמא 4: הסקריפט d5write_neuron_step מבצע את הדברים הבאים: א. נותן למשתמש לבחור קובץ מתוך רשימת קבצי.neuron_step*.mat ב. קורא את הקובץ, ומוצא את עצמת הזרם וזמן הערור. ג. מכין שם-קובץ כולל את עצמת הזרם וזמן הערור, עם סיומת.txt ד. כותב לקובץ בשם זה שורת כותרת עם עוצמת הזרם וזמן הערור. ה. בהמשך הקובץ, כותב כותרות לזמן ולמתח, ומתחתיהן את ערכי הזמן והמתח. דוגמא 5: הסקריפט d5read_neuron_step מבצע את הדברים הבאים: א. נותן למשתמש לבחור קובץ מתוך רשימת קבצי.neuron_step*.txt ב. פותח את הקובץ לקריאה, ומדלג על השורה הראשונה. ג. מן השורה השנייה והשלישית, מחלץ את ערכי הזרם וזמן הערור. ד. מדלג על שורת הכותרת לעמודות. ה. קורא את העמודות ומכין מהן משתנה לזמן ומשתנה למתח. ו. משרטט גרף של המתח כפונקציה של הזמן. ז. מוסיף כותרת לגרף: שם הקובץ המקורי + ערכי הזרם וזמן הערור. קריאה וכתיבה לקבצים בינאריים קובץ בינארי כולל ייצוג בינארי של נתונים מסוגים שונים, באופן סדרתי. בקריאה וכתיבה לקובץ בינארי קוראים בכל פעם נתונים מסוג מסוים. מספר הבתים שנקרא או נכתב עבור כל נתון תלוי בסוג הנתון. להלן כמה סוגי נתונים ומספר הבתים הכתובים בקובץ לכל נתון: סוג מספר בתים מספר בתים סוג single,float 4 int, int32 4 double,float64 8 int16,integer*32 2 char*1 1 int8 1 char תלוי בקידוד uint8 1 סוגים נוספים נמצאים בתיעוד על פקודות.fread,fwrite אם לא מציינים את הסוג בגוף הפקודה, ברירת המחדל היא.uint8 שיעור 5 עמ' 9 מתוך 11

בכתיבה וקריאה של מערך, הנתונים נכנסים למערך לפי עמודות. פקודות כתיבה fwrite(fid, A) כתיבת כל האיברים של A לקובץ. A יכול להיות גם ביטוי )לא רק שם של משתנה(. fwrite(fid, A, dtype) ציון סוג הנתונים dtype fwrite(fid,rand(5),'double') דוגמא: פקודות קריאה A = fread(fid) קריאת כל התוכן של הקובץ למערך-עמודה A. A = fread(fid,sa) ציון מספר הנתונים לקריאה. A = fread(fid,[m,n]) ציון ממדי המערך A )כמו בפקודת.)fscanf A = fread(fid,[m,n],dtype) ציון סוג הנתונים. שיעור 5 עמ' 11 מתוך 11