MatLab
שימוש מתקדם-מטריצות
8_9.2/77 מערכים ומטריצות
מבוא למערכים,
:;,
בוני מערכים,
האצת לולאות,
פעולות מערכים בסיסיות,
הערות לגבי פעולות מערכים,
,'Transpose
תרגול .
מבוא לתכנות בעזרת MatLab
))22100 אורט בראודה – הנדסת מכונות
8_9.3/77
מבוא למערכים,
:;,
בוני מערכים,
האצת לולאות,
פעולות מערכים בסיסיות,
הערות לגבי פעולות מערכים,
,'Transpose
תרגול .
מבוא למערכים
המקור של MatLabהוא במאמץ לפיתוח של
תוכניות יעילות לטיפול ופתרון משוואות ליניאריות,
לשם כך צריך יכולת טיפול במערכים ומטריצות,
רק השגרות היעילות ביותר הוכנסו לשימוש,
MatLab הינו "דמוי ,"Cאך הוספו לסביבה זו כלים
המאפשרים טיפול מהיר ויעיל במערכים ומטריצות.
ובאלו,
מערכים,
ומטריצות:
שימו לב ל [ ] ו ,
מבוא לתכנות בעזרת MatLab
))22100 אורט בראודה – הנדסת מכונות
8_9.8/77
כיצד ניתן ליצור מערך? (המשך)
ראו את שלושת ההגדרות הבאות:
2
מערך בן 5מקומות ,החל ב 110 -ונגמר ב10 -
עם מרחקים הולכים וגדלים לוגריתמית.
מספר שורות
מספר עמודות
>> )size)T
= ans
4 2
מערך ממוין
for n = 2 :
c c12 a11b11 + a12b 21 a11b12 + a12b 22
C = 11 =
c
21 c 22 a b
21 11 + a b
21 11 a b
22 21 + a b
22 22
» ;x=0:pi/10:6*pi
» =sin;))xy
» =;)y>0).*yyr
» plot))x,yr
» )'xlabel)'x values
» )'ylabel)'y values
» )'title)'Rectified sine
» )]axis)]0 6*pi -1 1
]C = ]1, 2, 3; 4, 5, 6; 7, 8, 9 »
diag) )C »
diag))C, 1 »
diag))C, 2 »
]V = ]2, 4, 6, 8 »
diag))V,0 »
diag)diag)))C »
?What are the lessons %
diag)ones))4,1),-1 c = »
diag)ones))4,1),1 c = c + »
diag)ones))2,1),3 c = c + »
diag)ones))2,1),-3 c = c + »
?What are the lessons %
MatLab מבוא לתכנות בעזרת
))22100 אורט בראודה – הנדסת מכונות
8_9.71/77
תרגול - 5שימוש ב ( diagהמשך)
... ומפגש עם כמה פונקציות חדשות..
D =magic))5
diag))D
diag)diag)))D
Z = ]magic)3),zeros)3,2), -ones;))3,1
*4ones )2,4),eye]))2,2
]]=)Z):,3
mess = 10*rand))4,5
test = 1./)3*ones)))2,3
התכנית תדפיס את הציון הממוצע מתוך אלו שעברו את הקורס (מתוך
הציונים שגדולים מ ) 55
התכנית תדפיס את הציון הגבוה ביותר ואת מיקומו (האינדקסים שלו)
במטריצה.
אם הציון הגבוה מופיע כמה פעמים ,התוכנית תדפיס את כל המקומות
בהם הוא מופיע.
פתרון- 6 תרגיל
A=fix)rand)5(*101(
B=A)A>55( %all marks>55
av_mark=mean)B(; %average
fprintf)‘\nThe average of all mark is %.2f’,av_mark(
[i,j[=find)A==max)max)A(((; %all places of the max grade
max_mark=A)i)1(,j)1((; %from all places of the max grade we take the first place
for k=1:length)i(
fprintf)'\n%d-th row, %d-th column',i)k(,j)k((; %show all places in the vectors [i,j[
end
תרגיל 7
תרגיל - 7פתרון
;(function s=SecondDiag)A
(((s=sum)diag)flipud)A
פתרון- 8 תרגיל
A=input)'Enter the matrix '(;
[m,n[=size)A(;
for i=1:m
[row,col[=find)A)i,:(==max)A)i,:(((; %row is always 1 because A)i,:( is vector 1Xn
if max))A)i,:(==min)A):,col((
fprintf)'\nThe element is %d \nIt is located in )%d,%d(',A)i,col(,i,col(;
end
end
flag=0;
A=input)'Enter the matrix '(;
[m,n[=size)A(;
for i=1:m
[row,col[=find)A)i,:(==max)A)i,:(((;
if A)i,col(==min)A):,col((
fprintf)'\nThe element is %d \nIt is located in )%d,%d(',A)i,col(,i,col(;
flag=1;
end
end
if flag==0 fprintf('\nThere are no required elements');end
פתרון- 9 תרגיל
function a=neib(Mat,D);
a=[0,0[;
[M,N[=size)Mat(;
for i=1:M-1
for j=1:N-1
if Mat)i,j(==Mat)i,j+1( & Mat)i,j(==Mat)i+1,j( & Mat)i,j(==Mat)i+1,j+1( & Mat)I,j(==D
a=[i,j[;
end
end
end
פתרון-10 תרגיל
function v=minmax(a)
[max_el,k[=max)a(;
[min_el,l[=min)a(;
a)k(=min_el; תכנית ראשית
a)l(=max_el;
v=a; b=input)'Enter a new matrix '(;
s=size)b(;
d=[[;
for i=1:s)1(
d=[d;minmax(b(i,:))[;
end
disp)'the new matrix is:'(;
disp)d(;
תרגיל 11