1 - אוניברסיטת תל אביב
Download
Report
Transcript 1 - אוניברסיטת תל אביב
הפקולטה למדעי החיים ע"ש ג'ורג' ס .וויז
אוניברסיטת תל אביב ,ישראל
נובמבר 2010
מועבר ע"י :אורי לוי
http://ibis.tau.ac.il/twiki/bin/view/Bioinformatics/MATLAB2011
© כל הזכויות שמורות ,אין להעתיק להציג או לשפכל מצגת זאת או חלקים
ממנה ,ללא אישור המחבר.
על הסדנא
1
למה ללמוד ?Matlab
אני בכלל ביולוג /חוקר מוח ...למה אני צריך את זה?
מאפשר ייעול המחקר
מאפשר הדמיה החוסכת זמני ועלויות מחקר
מאפשר ניתוח תמונות של :מוח ,תאים ,התנהגות
בע"ח ועוד שבן אדם היה מתקשה לבצע
מאפשר חישובים רבים אשר היו לוקחים שנים או
חודשים במקרה אחר
על הסדנא
2
למה ללמוד ?Matlab
על הסדנא
3
ניתוח תמונות במחקר
כימות ריכוז בג'לים
זיהוי באנדים ב ג'לים
שיעור - 7חזרה
צביעות
אימונוהיסטוכימיות
4
מה נלמד היום?
סביבת העבודה
סוגי משתנים ב Matlab
פקודות Matlabבסיסיות
הצגת נתונים ב Matlab
גרפיקה ועיבוד תמונה ב Matlab
עיבוד נתונים
על הסדנא
5
Matlab סביבת העבודה
http://citrix.tau.ac.il
. בכיתת המחשבים
:citrix מתוך אתר
http://www.tau.ac.il/tau-only/software/winsock/XenAppWeb.exe
6
סביבת העבודה
סביבת העבודה Matlab
בחירת תיקיית מתמטיקה.
סביבת העבודה
7
סביבת העבודה Matlab
בחירת .Matlab
סביבת העבודה
8
סביבת העבודה Matlab
בכיתת המחשבים.
סביבת העבודה
9
סביבת העבודה Matlab
חלון עריכת קבצים
חלון כתיבת פקודות
סביבת העבודה
רשימת משתנים
חלון
היסטוריה
10
סביבת העבודה Matlab
יצירת קובץ תוכנית.
כתיבת הקוד ושמירתו.
הרצת הקוד.
סביבת העבודה
11
סביבת העבודה...
.1הרצת תוכניות:
תוכניות בדרך כלל אנחנו מריצים על ידי לחיצה על האייקון שלהם:
תוכניות שיצרנו ב matlabמריצים על ידי הקשת השם שלהן בשורת הפקודה:
שם תוכנית >>
דוגמאות:
>>earthmap
>>vibes
>>life
סביבת העבודה
12
תוכנית ראשונה
. על המסךhello world התכנית מדפיסה
MatLab
function hello()
Hello, world!
disp(‘hello
disp(
‘helloworld’);
world’);
end
hello.m
13
תוכנית ראשונה
מבנה פקודה -שפת matlab
)ערך ,2ערך (1פקודה = משתנה 1
)value = min(3,2
),...ערך ,2ערך (1פקודה = ],...משתנה ,2משתנה [1
מבנה תוכנית – matlab
14
הכרת המחשב – איך עובד הזכרון?
המחשב משמש אותנו לעיבוד מידע
מידע מיוצג בזכרון ע"י החלפתו במספרים.
לכל קבוצה בזכרון יש כתובת.
לדוגמה:
כתובת מספר 164מכילה
את הערך 200
הכרת המחשב
9
200
8
188
7
165
6
218
5
113
4
230
3
77
2
42
1
253
0
81
כתובת
_11
113
18
150
25
8
32
112
190
202
235
68
236
171
92
196
138
198
122
103
248
146
32
112
172
131
111
4
40
1
236
210
206
136
128
44
80
54
253
198
3
138
110
211
140
47
45
227
93
194
176
192
38
45
226
110
97
17
251
82
229
150
35
93
11
189
49
172
106
134
147
184
168
61
239
200
49
40
34
229
49
23
20
21
69
49
7
152
237
25
219
60
149
202
201
231
52
122
239
218
179
80
94
196
157
60
214
182
87
201
216
148
57
135
190
153
90
186
176
198
232
61
170
192
36
4
152
70
74
122
10
128
211
136
178
130
115
69
197
84
228
_12
_13
_14
_15
_16
_17
_18
_19
_20
_21
_22
_23
_24
_25
15
הכרת המחשב – איך עובד הזכרון?
מידע מיוצג בזכרון ע"י החלפתו במספרים.
תמונה בזכרון המחשב מחולקת לריבועים קטנים ).)pixel
4
0
3
129
2
129
1
129
0
129
כתובת
_11
129
129
129
129
_12
129
129
129
_13
129
129
_14
0
_15
_16
5
9
129
8
129
7
129
6
129
0
129
129
129
129
0
129
129
129
129
129
0
129
129
129
129
129
0
0
129
129
129
0
129
129
129
129
129
129
129
0
0
0
0
129
129
129
0
0
0
0
0
0
0
0
0
0
0
0
240
240
_17
240
240
0
0
0
0
240
240
240
240
_18
240
240
240
240
240
240
240
240
240
240
_19
240
240
240
240
240
240
240
240
240
240
_20
240
240
240
240
240
240
240
240
240
240
_21
240
240
240
240
240
240
240
240
240
240
_22
0
240
240
0
240
240
240
0
0
240
_23
0
240
240
0
240
240
0
0
240
240
_24
כל פיקסל מכיל ערך מספרי
המייצג את הצבע.
) Radiant Baby (Keith Haring
הכרת המחשב
16
הכרת המחשב – איך עובד הזכרון?
מידע מיוצג בזכרון ע"י החלפתו במספרים.
9 10
תזהר ממנה
ביגי
יש לה זוג עיניים איתן היא מביטה
כמו אל השמיים היא פיתחה שיטה
מבט אחד ממנה ואתה קפוא
תחזור מהר להנה כולם כבר ניסו
תיזהר ממנה היא כמו דבורה מיד עוקצת
סתם מסכה שהיא לובשת
תיזהר אחי כי אותך היא מחפשת.
תיזהר ממנה היא כמו דבורה מיד עוקצת
סתם מסכה שהיא לובשת
תיזהר אחי בכולם היא משחקת.
הלכתי ובדקתי אם זה אמיתי
אבל כשלא שמעתי עצרה נשימתי
מבט אחד ממנה ואתה קפוא
תחזור מהר להנה כולם כבר ניסו
8
7
6
5
4
3
2
1
150x 250 233 230 228 248 32 238 238 240 228
151x 13 10 235 238 229 32 227 225 229 248
152x 228 32 228 233 224 32 238 233 227 32
153x 242 229 247 246 250 13 10 241 250 237
154x 32 238 241 235 228 32 249 228 233 224
155x 32 236 229 225 249 250 13 10 250 233
156x 230 228 248 32 238 238 240 228 13 10
157x 250 233 230 228 248 32 224 231 233 32
158x 235 233 32 224 229 250 234 32 228 233
159x 224 32 238 231 244 249 250 13 10 235
160x 238 229 32 227 225 229 248 228 32 228
מלות שיר מיוצגות בזכרון על
161x 233 224 32 238 233 227 32 242 229 247
במספר
החלפת250כל
241ידי
162x ,246
אות 250 13
10 241
237 32 238
163x ...
235
249ב228 =32
228 233
לדוגמה224
32 236 229
225
,224
א=
164x 225 249 250 13 10 250 233 230 228 248
165x 32 224 231 233 32 225 235 229 236 237
166x 32 228 233 224 32 238 249 231 247 250
תזהר ממנה...
הכרת המחשב
17
הכרת המחשב – איך עובד הזכרון?
מידע מיוצג בזיכרון ע"י החלפתו במספרים.
9
200
8
188
7
165
6
218
5
113
4
230
3
77
2
42
1
253
0
81
כתובת
_11
113
18
150
25
8
32
112
190
202
235
68
236
171
92
196
138
198
122
103
248
146
32
112
172
131
111
4
40
1
236
210
206
136
128
44
80
54
253
198
3
138
110
211
140
47
45
227
93
194
176
192
38
45
226
110
97
17
251
82
229
150
35
93
11
189
49
172
106
134
147
184
168
61
239
200
49
40
34
229
49
23
20
21
69
49
7
152
237
25
219
60
149
202
201
231
52
122
239
218
179
80
94
196
157
60
214
182
87
201
216
148
57
135
190
153
90
186
176
198
232
61
170
192
36
4
152
70
74
122
10
128
211
136
178
130
115
69
197
84
228
_12
_13
_14
_15
_16
_17
_18
_19
_20
_21
_22
_23
_24
_25
מוזיקה יכולה להיות מאוחסנת
במחשב על ידי החלפת כל תו
וצליל בערך מספרי.
הכרת המחשב
18
הכרת המחשב – איך עובד הזכרון?
מידע מיוצג בזכרון ע"י החלפתו במספרים.
9 10
תזהר ממנה
ביגי
יש לה זוג עיניים איתן היא מביטה
כמו אל השמיים היא פיתחה שיטה
מבט אחד ממנה ואתה קפוא
תחזור מהר להנה כולם כבר ניסו
תיזהר ממנה היא כמו דבורה מיד עוקצת
סתם מסכה שהיא לובשת
תיזהר אחי כי אותך היא מחפשת.
תיזהר ממנה היא כמו דבורה מיד עוקצת
סתם מסכה שהיא לובשת
תיזהר אחי בכולם היא משחקת.
הלכתי ובדקתי אם זה אמיתי
אבל כשלא שמעתי עצרה נשימתי
מבט אחד ממנה ואתה קפוא
תחזור מהר להנה כולם כבר ניסו
8
7
6
5
4
3
2
1
150x 250 233 230 228 248 32 238 238 240 228
151x 13 10 235 238 229 32 227 225 229 248
152x 228 32 228 233 224 32 238 233 227 32
153x 242 229 247 246 250 13 10 241 250 237
154x 32 238 241 235 228 32 249 228 233 224
155x 32 236 229 225 249 250 13 10 250 233
156x 230 228 248 32 238 238 240 228 13 10
157x 250 233 230 228 248 32 224 231 233 32
158x 235 233 32 224 229 250 234 32 228 233
159x 224 32 238 231 244 249 250 13 10 235
160x 238 229 32 227 225 229 248 228 32 228
מלות שיר מיוצגות בזכרון על
161x 233 224 32 238 233 227 32 242 229 247
במספר
החלפת250כל
241ידי
162x ,246
אות 250 13
10 241
237 32 238
163x ...
235
249ב228 =32
228 233
לדוגמה224
32 236 229
225
,224
א=
164x 225 249 250 13 10 250 233 230 228 248
165x 32 224 231 233 32 225 235 229 236 237
166x 32 228 233 224 32 238 249 231 247 250
תזהר ממנה...
הכרת המחשב
19
מִ שְ תַ נ ִים
דרך נוחה לעבוד עם הזיכרון היא להגדיר שמות בעלי משמעות
לתאי הזיכרון איתם אנחנו עובדים.
בשפות תכנות לשמות של תאי הזיכרון קוראים משתנים.
הפקודות /פעולות בשפות התכנות מבצעות פעולות על
משתנים ,כלומר מקבלות כקלט משתנים ומשנות )פלט) משתנים
; X=3+4
; Y=X-4
לכל משתנה חייב להיות שם‘ לדוגמאx, y, index, number :
שם של משתנה חייב להתחיל באות
שם של משתנה מורכב מאותיות ,ספרות וקו תחתון
בד"כ יש מגבלה על אורך שם המשתנה )לדוגמא 32תווים)
אותיות קטנות וגדולות באנגלית יוצרות משתנים שונים
לדוגמא x :ו Xהם לא אותו משתנה
משתנים
20
משתנים – שמות משתנים
שם משתנה לא יכול להיות שם של מלה שמורה בשפה
iskeyword ניתן לדעת ע"י הקשת הפקודה
break
case
catch
continue
else
elseif
21
end
for
function
global
if
otherwise
persistent
return
switch
try
while
מפעילים )אופרטורים)
הפקודות /פעולות בשפות התכנות מבצעות פעולות על משתנים,
כלומר מקבלות כקלט משתנים ומשנות )פלט) משתנים
מפעילים מגדירים פעולות אריתמטיות או לוגיות שניתן לבצע על
משתנים.
כאשר a=1, b=2, c=3, d=8
מפעילים אריתמטיים:
מפעיל
+
*
/
\
%
MATLABמספר שלם מספר עשרוני
C
a+b=3
a+b=3
חיבור
c-b=1
c-b=1
חיסור
b*c=6
c*b=6
כפל
d/c=2.67
d/3=2
חילוק
חילוק בכיוון
שגיאה
הפוך
שארית
הערה
מפעילים )אופרטורים)
b\c=2
b\3=1.50
d%c=2
שגיאה
22
מפעילים )אופרטורים)
מפעילים לוגיים:
ב matlabתוצאתם falseאו .true
ב Cתוצאתם ) 0כמו )falseאו ערך שונה מ ) 0כמו ,)true
בד"כ ערך זה יהיה . 1
כאשר a=1, b=2, c=3
MATLAB
C
>
=>
<
=<
==
=!
=~
מפעילים )אופרטורים)
)true (1
c>a
c>=c
a<c
b<=b
)c==(a+b
c!=a
c~=a
)false(0
b>c
a>=b
c<b
b<=a
c==a
)c!=(a+b
)c~=(a+b
23
שילוב תנאים לוגיים
ב – Matlab
וגם & :בודק התקיימות שני תנאים:
– a>1 & a<4 דורש ש aיהיה גדול מ 1וגם קטן מ .4
או | :בודק התקיימות אחד משני תנאים:
– a==1 | mod(a,2)==0 דורש ש aיהיה 1או מספר זוגי.
השוואה עם קֶ צֶר -מחזיר תשובה כבר כשידועה התשובה:
וגם && :בודק התקיימות שני תנאים:
– (1>2) && (4/0>3) הצד השמאלי לא יכול להתקיים אף פעם
לכן חוזר מיידית עם תשובה שלילית.
או || :בודק התקיימות אחד משני תנאים:
– (a/a==1) || (a>a) הצד השמאלי תמיד מתקיים לכן חוזר
מייד עם תשובה חיובית.
מפעילים לוגיים
24
קלט – matlab
ניתן לקלוט משתנה בודד ע"י הפקודה input
;)’ Var = input)‘enter one value:
לחילופין ניתן לקלוט מספר משתנים בשני שלבים:
;)’sTemp = input)‘enter several values:’, ‘s
;)values = str2num(sTemp
פלט – matlab
– disp פקודה שימושית להצגת ערך של משתנה.
;)’disp)‘hello world
- msgbox כמו dispאך הפלט מוצג על גבי חלון הודעה
שנפתח במיוחד.
;)’ msgbox)‘text’,’title
קלט ופלט – קלט ב matlab
25
מבנה תוכנית matlab -
הגדרת הפונקציה הראשית
)(function hello_world
קוד ב matlabיכול להיות מאורגן בפונקציות לנוחיותינו.
פונקציה מאגדת בתוכה אוסף של פקודות שמטרתן ביצוע
תהליך או חישוב מסוים.
המטרה בכתיבת פונקציה הנה לממש יכולת מסוימת בלי לדאוג
לכתיבתה מחדש לצורך ביצוע אותן פעולות.
שם הפונקציה צריך להיות כשם הקובץ.
שם הקובץ קובע בלעדית את שם הקריאה לפונקציה!!!.
מבנה תוכנית – matlab
26
מבנה תוכנית matlab -
הגדרת הפונקציה הראשית
)(function hello_world
)… function [out1,out 2,…] = function_name (in1, in2,
statements
end
– out1,out2המשתנים שהפונקציה מחזירה כפלט
– function_nameשם הפונקציה
– in1,in2המשתנים שהפונקציה מקבלת כקלט
ניתן לסיים פונקציה ולחזור ע"י פקודת .returnלא חובה.
ניתן לתחום פונקציה ב .endחובה רק אם יש עוד פונקציות
באותו קובץ.
מבנה תוכנית – matlab
27
matlab – הערות
גרסה משודרגת של התכנית
function hello_world()
%function hello_world()
%prints hello world to the screen
fprintf(1,‘hello world\n’); %print
return
end %function hello_world()
28
מבנה תוכנית – הערות
ייצוג תמונה בזיכרון
הצגת תמונה על המסך:
;)image(pixels
המשתנה pixelsמכיל את כל הפיקסלים של התמונה.
המשתנה pixelsהוא בעצם טבלה של 100x100משתנים בודדים.
בשפות תכנות טבלה של משתנים נקראת מערך (.)array
ייצוג בזיכרון של תמונה
29
טיפוסים מרובי משתנים
C.dmiension(2)=[1,1,0.8]
1
2
3
4
5
source
MRI T1
MRI T2
PET
CT
X-RAY
orientation
L-R
L-R
T-B,L-R
1-0
[]
data
<256x256x56 double>
<256x256x66 double>
<64x64x32 double>
<256x256x256 double>
<512x512x384 double>
1
2
3
4
5
30
MRI T1
MRI T2
PET
CT
X-RAY
dimension
[1,1,1]
[1,1,0.8]
4
24
[0.5 0.5 0.5]
}...{מערך תאים
C(2,4)=[1,1,0.8]
1
מערך מבנים
2
L-R
L-R
T-B,L-R
1-0
[]
3
<256x256x56 double>
<256x256x66 double>
<64x64x32 double>
<256x256x256 double>
<512x512x384 double>
4
[1,1,1]
[1,1,0.8]
A(2,3)=724.58
1
2
3
4
5
1
48.44
73.17
800.02
220.04
210.55
4
24
[0.5 0.5 0.5]
matlab סקירת סוגי ערכים ב
2
228.19
627.99
936.51
619.8
71.93
]...[ מערך
3
217.08
724.58
720.51
296.97
679.15
4
165.4
312.67
363.45
710.71
173.29
מערכים – מימדי מערכים
כשמערך הוא דו מימדי הוא נקרא מטריצה.
מספר הערכים בכל שורה ושורה חייב להיות זהה.
מספר הערכים בטור חייב להיות זהה.
??x
מערכים
5x4
31
מערכים – מימדי מערכים
4∙1
מערך חד מימדי 1∙n :או n∙1
נקרא גם וקטור
מעבר ביניהם ע"י '
1∙4
1 2 3 4
1
=’a
2
3
=a
4
מערך דו מימדי
נקרא גם מטריצה
3∙2
2∙3
1 2
1 3
4 5
2 6
אפשר ליצור גם מערך רב
מימדי m ∙n ∙… ∙k
מערכים
1 4
1
=a
נקרא גם מטריצה
a’= 2 5
2
3 2
6
32
מערכים – פעולות מתמטיות
כל הפעולות הרגילות
+חיבור
-חיסור
./חילוק
* .כפל
^ .חזקה
על מערכים באותו גודל (פרט לחזקה).
על סקלרים (משתנה של ערך בודד)
פעולות מטריצה
/חילוק ^ חזקה
* כפל
מערכים
33
מחרוזות
firstLetter = ‘a’
msg = ‘hello world’;
char משתנה מסוג
)string( מחרוזת
ומייצגת.char מערך של, מחרוזת היא סוג מיוחד של מערך
טקסט
msg = [‘hello world my age is’ 70];
hello world my age is F
msg = [‘hello world my age is’ 20];
hello world my age is
34
מחרוזות
מחרוזות
הטיפוס char
טבלת ASCII
מחרוזות
35
מחרוזות
msg = [‘hello world my age is’ int2str(70)];
hello world my age is 70
msg = [‘hello world my age is’ num2str(20)];
hello world my age is 20
36
מחרוזות
מערכים
Humpty Dumpty sat on a wall
Humpty Dumpty had a great fall
All the king's horses and all the king's men
Couldn't put Humpty together again
5x4
37
27
30
44
34
?x?
תאים
תאים
Humpty Dumpty sat on a wall
Humpty Dumpty had a great fall
All the king's horses and all the king's men
Couldn't put Humpty together again
5x4
27
30
44
34
Humpty_song =
?x?
{['Humpty
'Humpty Dumpty
Dumpty sat
sat on
on aa wall';
wall';
'Humpty Dumpty had a great fall';
'All the king''s horses and all the king''s men';
'Couldn''t put Humpty together again‘]
again‘}
38
תאים
תאים
מערך תאים הוא אוסף של אזורי זכרון שאפשר לאחסן בהם מידע
מסוגים שונים.
כמו במערכים ב matlabגם מערך תאי צריך להיות מרובע
??x
5
1
תאים
39
תאים
יצירת תא על ידי סוגריים מסולסליםC = {A B ; D E} :
שילוב:
}C1 = {C2 C3
ליצירת מערך תאים שמכיל 2תאים
]C4 = [C2 C3
להגדלת תא אחד
– C)s( מחזיר תא
– C{s} מחזיר ערך
C4
תאים
C1
C1 C4
40
מתאים למערכים חזרה
: מערך תאים המכיל את ימות השבוע
days = {'Sunday', 'Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'};
1x7 :גודל
dayz = {'Sunday‘; 'Monday‘;'Tuesday‘;'Wednesday‘;'Thursday‘;'Friday‘;'Saturday'};
7x1 :גודל
Days =
הופכת מערך תאיchar הפקודה
Days = char(days): [‘Sunday
’
‘Monday
’
למערך מחרוזות הכוללת רווחים
Days = char(dayz):
‘Tuesday ’
בכדי שגודל כל המחרוזות יהיה
‘Wednesday’
.זהה
‘Thursday ’
‘Friday
’
‘Saturday ’]
strtrim(Days(3,:)) = ‘Tuesday’
41
תסיר את הרווחיםstrtrim הפקודה
.בשליפה
תאים ומערכים
מבנים
) היא צורת אחסון נתונים מעורבים כמו תאיםstruct( מבנה
. במבנה לכל תא קוראים בשם
Scans.name
Scans.orientation
Scans.data
Scans.dimensions
‘MRI T1’
‘L-R’
[ 256 x 256 x 50]
[1.5, 2, 3 ]
: לדוגמא
: יצירת מערך
Struct_name = struct(field_1,value_1,field_2,value_2, . . . , field_n,value_n)
Scans = struct(‘name’,‘MRI T1’, ‘orientation’,‘L-R’,’data’,MRI_T1, ‘dimensions’,[1.5, 2, 3])
42
מבנים
מערך מבנים
. בדרך כלל נרצה ליצור מערך מבנים
. לכל המבנים במערך יהיו אותם שדות
לא חובה שיהיו אותם סוגי ערכים
: יצירת מערך
Struct_name = struct(field_1,{values},field_2, {values}, . . . , field_n, {values})
Scans = struct(‘name’,{‘MRI T1’,’CT’}, ‘orient’,{‘L-R’,0:1},’data’,{MRI_T1,CTscan}, … ‘dims’,{[1.5, 2,
3], 256})
Scans(1).name
Scans(1).orient
Scans(1).data
Scans(1).dims
43
‘MRI T1’
‘L-R’
[ 256 x 256 x 50]
[1.5, 2, 3 ]
Scans(2).name
Scans(2).orient
Scans(2).data
Scans(2).dims
‘MRI T1’
[0 1]
[256 256 256]
256
מבנים
טיפוסים מרובי משתנים
[[ מערך -מרובע ,אותו סוג טיפוס בכל המערך.
}{ מערך תאים -מרובע ,יכול להכיל מספר סוגי טיפוסים בתאים שונים
– strcut רשימת שדות וערכיהם .פנייה באמצעות שם שדה ולא
באמצעות אינדקס.
מערך מבנים -מערך של structאותם שדות חייבים להיות בכל מבנה
אך לא אותם סוגי טיפוסי נתונים.
מחרוזת – מערך של אותיות (טיפוס מסוג – )charמשמש לאחסון
טקסט.
טיפוסים מרובי משתנים ב matlab
44
סוגי משתנים
סקירת סוגי משתנים ב matlab
45
סוגי ערכים
0
-המספר false ,0בטיפוס logical
1
-המספר true ,1בטיפוס logicalובעצם כל מספר אחר...
[[ ערך ריק -כאשר הערך לא ידוע.
– Inf אין סוף -לדוגמה תוצאת חלוקה ב .0
– NaN לא מספר .כאשר הערך לא מוגדר לדוגמא.0 * Inf :
ביצוע השוואות על [],Inf,Nanיעשה תמיד דרך:
)(isnan(), isinf(), isempty
סקירת סוגי ערכים ב matlab
46
nargin
לפעמים נרצה לאפשר למשתמש להזין רק מספר משתנים
לפונקציה ,ובכל מצב אחר להשתמש בערכי ברירת מחדל
המשתנה המובנה narginמאפשר לנו לדעת כמה משתנים
קיבלנו לתוך הפונקציה
nargout
לפעמים נרצה להגיב אחרת בהתאם למספר המשתנים
המבוקשים
המשתנה המובנה nargoutמאפשר לנו לדעת כמה משתנים
נתבקשנו להוציא מתוך הפונקציה
narginו nargout
47
nargout
function seasonName = Season3(monthNumber)
switch monthNumber
case {1,2,12}
seasonName=('Winter');
case {3,4,5}
seasonName=('Spring');
case {6,7,8}
seasonName=('Summer');
case {9,10,11}
seasonName=('Autumn');
otherwise
seasonName=('Unknown month');
end
if nargout==0
disp(SeasonName);
end
end
48
>>season=Season3(8);
>>season
season =
Summer
>>Season3(8)
Summer
>>
nargout
nargin
function seasonName = Season4(monthNumber)
if nargin==0
monthNumber = input(‘what month is it? ’);
end
switch monthNumber
case {1,2,12}
seasonName=('Winter');
case {3,4,5}
seasonName=('Spring');
case {6,7,8}
seasonName=('Summer');
case {9,10,11}
seasonName=('Autumn');
otherwise
seasonName=('Unknown month');
end
end
49
>>Season4(8)
ans =
Summer
>>Season4()
what month is it? 3
ans =
Spring
>>
nargin
קבצי mat
ניתן לשמור את כל המשתנים שיש לנו בסביבת העבודה או את
חלקם.
שמירת כל המשתנים לקובץ בפורמט בינארי:
save filename
טעינת המשתנים חזרה לסביבת העבודה:
load filename
שמירת מספר משתנים
*save filename var1 var2 var3 ab
* - abיישמור את כל המשתנים שמתחילים באותיות ab
כקריאה לפונקציה:
;(’*save)‘filename’, ‘var1’, ‘var2’, ‘var3’, ‘ab
אחזור נתונים
50
קבצי נתונים
לעתים ה matlabלא מכיר סוג קובץ מסוים או שאנחנו רוצים
לבצע ייבוא בצורה מיוחדת ונכתוב קוד בעצמנו אשר קורא את
הקובץ או שומר אותו:
קריאת קובץ:
פתיחת הקובץ לקריאה
קריאה של נתונים ממנו.
סגירת הקובץ
עיבוד הנתונים לתוך משתנים
שמירת קובץ:
פתיחת הקובץ לשמירה
כתיבה של נתונים אליו.
סגירת הקובץ
אחזור נתונים
51
הצגה גרפית
שלב ראשון של הצגה גרפית היא יצירת חלון שעליו יצוייר הגרף /
תמונה וכו'
;h = figure
הפונקציה figureיוצרת חלון ומחזירה לנו מספר שנוכל להשתמש
בו בשביל לפנות לחלון
לא חובה לשמור את המספר
לא חובה ליצור חלון ,כל הפונקציות הגרפיות יוצרות בעצמן חלון
גרפי
במידה וכבר קיימים חלונות גרפיים הפונקציות יכתבו לחלון הגרפי
האחרון שהסתכלנו עליו.
אחזור נתונים
52
הצגה גרפית
לאחר ציור הגרף ניתן לשלוט על המראה הכללי:
מתן שמות לסרגלים
)שם(ylabel
מתן שם לגרף
;)שם(xlabel
;)שם(title
קביעת טווח הסרגלים:
;)]axis([xmin xmax ymin ymax
אחזור נתונים
53
הצגת תמונות
קיימות שתי פקודות להצגת תמונות:
;)מטריצה(image
)מטריצה(imagesc
imageמציגה ערכים שהם בטווח של 0עד 1
imagescמציגה ערכים בכל טווח
רוב התמונות שנציג יהיו שחור לבן.
כדי להציג תמונה צבעונית צריך מטריצה תלת מימדית כאשר
המימד השלישי מייצג לפי הסדר את ערכי האדום ירוק וכחול של
התמונה.
אחזור נתונים
54
הצגת תמונות
כדי לצבוע תמונה בשחור לבן משתמשים ב:
;)שם המפה(colormap
רשימת המפות המובנות:
אחזור נתונים
55
חלוקת חלון התצוגה
הפונקציה subplotמחלקת את חלון הציור לתתי חלונות
ובוחרת תת חלון נוכחי
;)תת חלון נבחר ,טורים,שורות(subplot
הצגת נתונים
56
ניתוח תמונות במחקר
ניתוח ריצת :DNA
האם המקטע שרצינו להגביר שוכפל ב ? PCR
זיהוי קיומם של bandsמסוימים בג'ל בצורה
אוטומטית.
סוגי תמונות ב matlab
57
ניתוח תמונות במחקר
’0’ 30’ 60’ 90
הערכת דרגת ניקיון של חלבונים:
השוואה בין בנדים שונים :איך?
מציאת גבולות כל בנד
חישוב רמת הסיגנל /רמת סיגנל
הרקע בעמודה.
סוגי תמונות ב matlab
58
ניתוח תמונות במחקר
צביעות אימונוהיסטוכימיות:
זיהוי ריכוז חלבון מסוים באזורים שונים
סוגי תמונות ב matlab
59
ניתוח תמונות במחקר
צביעות אימונוהיסטוכימיות:
זיהוי תאים וספירתם
סוגי תמונות ב matlab
60
סוגי תמונות ב matlab
עוצמת בהירות
צבע מלא
שיעור - 7חזרה
תמונות בינאריות
אינדקס צבע
61
סוגי תמונות ב matlab
תמונות בינאריות )לוגיות)
מכילות רק ערכי 0ו 1
חייבות להיות מטיפוס logical
)(dither
סוגי תמונות ב matlab
)(im2bw
62
סוגי תמונות ב matlab
תמונות עוצמת בהירות ))grayscale
’0’ 30’ 60’ 90
מכילות ערכים בטווח 0-1
חייבות להיות מטיפוס double
ניתן להמיר מטריצה ע"יmat2gray :
סוגי תמונות ב matlab
63
תפיסת צבע
הראייה האנושית הינה טריכרומטית
תפיסת צבעים מורכבת משילוב שלושה צבעי יסוד:
אדום ) ,)565nmירוק ) ,)545nmכחול ))440nm
ייצוג צבע במחשב מורכב
משילוב של רמות בהירות ב 3
צבעי היסוד
סוגי תמונות ב matlab
64
סוגי תמונות ב matlab
תמונות צבע מלאות
הצורה הטבעית של תמונות כפי ששמורות
בקבצי תמונה במחשב ))jpeg, bitmap
לאחר קריאה מתקבלת מטריצה של int8
מגודל mxnx3
מטריצה ראשונה מגודל mxnמייצגת את הצבע האדום
מטריצה שנייה מגודל mxnמייצגת את הצבע הירוק
מטריצה שלישית מגודל mxnמייצגת את הצבע הכחול
לצורך עבודה יש להמיר לסוג doubleבטווח ערכים 0-1וזאת
ע"י הפקודה .im2double
סוגי תמונות ב matlab
65
סוגי תמונות ב matlab
תמונות אינדקס צבע
נפח הזיכרון הדרוש לשמירת תמונה:
258x350x3
אם מספר הצבעים בתמונה מוגבל ): )128
נוכל לשמור בצד רשימה של הצבעים וליצור
מטריצה חדשה שבה רשום רק מספר הצבע.
נפח הזיכרון הדרוש הינו בערך שליש:
258x350+128x3
סוגי תמונות ב matlab
66
ניתוח תמונות במחקר
עמידות גנטית:
ספירת מספר מושבות בצלחת
מאפייני המושבות – צורה ,בהירות.
סוגי תמונות ב matlab
67
זיהוי אובייקטים
קריאת התמונה זיהוי הדרגתיות
עוצמת הרקע
המרה לתמונה בינארית
סוגי תמונות ב matlab
תיקון הרקע
זיהוי אובייקטים
68
fitting
המטרה :התעלמות מרעש וטעויות מדידה והבאת הנתונים שלנו
לערכים "האמיתיים" שהיו אמורים לקבל
התאמה מאפשרת לנו למצוא יחס מתמטי בין משתנה מנבא
לערכים נמדדים.
69
fitting
70
clustering
תהליך של חלוקה אוטומטית לקבוצות
כיצד מחליטים מהי קבוצה?
כיצד מחליטים אם ערך מסוים שייך לקבוצה?
71
K -Means
חלוקה ל Kקבוצות
צריך להחליט מראש מהו ה ) Kכמה קבוצות יש)
התהליך:
יצירת kמרכזים ראנדומליים
שיוך של נקודות ל kהמרכזים )כל נקודה משוייכת למרכז הקרוב לה
ביותר)
חישוב מחדש של המרכזים
72
הדגמה- K-Means
73
lookfor
מציאת פקודות שפותרות בעיה מסויימת.
ה matlabמבצע מעבר על העזרה של הפונקציות השונות ומפרט
את כל הפונקציות אשר המלה שאנחנו מחפשים מופיעה בשם
הפונקציה או בעזרה שלה.
edit
עריכת קובץ פקודות שכתבנו.
עריכת )צפייה) בקובץ פקודות מובנה של ה !!matlab
74
השימוש ב matlabנפוץ ביותר בקרה הקהילה האקדמית
כמות רבה של קוד והתייחסות לאפליקציות של matlabקיימת ב
web
הנוהג בקהילה המדעית הינו לפרסם כל חומר מדעי ששימש
במחקר ולכן בהרבה מקרים מאמרים מלווים בקוד שהיווה בסיס
למחקר
פלטפורמה להחלפת מידע תכנותי ב matlab
מקור לקוד שיכול לשמש בסיס לפתרון בעיות
חסכון בצורך להמציא את הגלגל מחדש
75