תכנות נומרי עם Matlab ו-Octave/רשומות
רשומה (struct) היא סוג של רשימה המכילה תאים (מכל הסוגים!!).
רשומה טובה לניהול נתונים בצורה מסודרת.
פרק זה לוקה בחסר. אתם מוזמנים לתרום לוויקיספר ולהשלים אותו. ראו פירוט בדף השיחה.
בניית רשומה
עריכהנבנה רשומה של עובד הכוללת את שמו , גילו והמשכורת. נאתחל עם הפקודה struct .
octave:77> worker=struct('name','avi','age',44,'salary',5000)
worker =
{
name = avi
age = 44
salary = 5000
}
יש לנו רשומה בשם worker עם תא בודד בתוכו קיימים השדות "name" "age "salary
אופס, העובד avi בעצם בן 42 והמשכורת שלו עלתה. נשנה את השדות האלו.
octave:51> worker.age=42;
octave:52> worker.salary=6000
worker =
{
name = avi
age = 42
salary = 6000
}
עכשיו נפנה לשדה name ולשדה age
octave:53> worker.name
ans = avi
octave:54> worker.age
ans = 42
אבל אבי אינו העובד היחיד. נוסיף עוד אחד.
octave:55> worker(2).name='tom';
octave:56> worker(2).age=29;
octave:57> worker(2).salary=4500;
octave:58> worker
worker =
{
name =
(,
[1] = avi
[2] = tom
,)
age =
(,
[1] = 42
[2] = 29
,)
salary =
(,
[1] = 6000
[2] = 4500
,)
}
ואם נרצה להוסיף את כל העובדים בחברה?
נשתמש בלולאת for. לדוגמה לחברה בת 5 עובדים:
octave:59> for i=3:5
> worker(i).name=input('insert name ','s');%char type!
> worker(i).age=input('insert age ');
> worker(i).salary=input('insert salary ');
> end
כדאי לדעת: שימו לב שהתחלנו את הלולאה מהמקום ה- 3 , יש לנו כבר 2 עובדים רשומים |
ניתן לבנות תתי רשומות (או תתי שדות)
פרק זה לוקה בחסר. אתם מוזמנים לתרום לוויקיספר ולהשלים אותו. ראו פירוט בדף השיחה.
פונקציות לרשומות
עריכהstruct
עריכהיצירת מבנה או בניית רשומה. ראו דוגמה למעלה.
fieldname
עריכההפונקציה מחזירה את השמות של שדות הרשומה.
fieldnames(worker)
ans =
{
[1,1] = name
[2,1] = age
[3,1] = salary
}
rmfield
עריכהמחיקת שדות ברשומה. שימו לב שצריך להציב לתוך הרשומה.
octave:68> worker=rmfield(worker,'age');
octave:69> fieldnames(worker)
ans =
{
[1,1] = name
[2,1] = salary
}
isfield
עריכהפונקציה לוגית המחזירה 1 אם קיים שדה בתוך רשומה ובתוכו קיימת מחרוזת מסויימת אם לא היא מחזירה 0.
מבנה הפונקציה:
isfield (EXPR, NAME)
כאשר EXPR הוא מסוג רשומה ו NAME הוא מחרוזת.
isstruct
עריכהפונקציה לוגית המחזירה 1 אם הפרמטר הוא מסוג רשומה ו-0 אם לא.
הפרק הקודם: מספרים מרוכבים |
רשומות | הפרק הבא: מערך תאים |