Week2a Chap4 Marix
Week2a Chap4 Marix
ذخيرهوبازيابيمتغيرها:دستورات saveو:load
درصورتيکهبخواهيمپسازخروجازمحيطمطلبهمهيا
بعضيازمتغيرهايموجوددرفضايکاريبراياستفاده
هايبعديذخيرهگردندازدستور saveاستفادهمي
کنيم.بادستور loadميتوانمتغيرهايذخيرهشدهرابه
فضايکاريبازگرداند.
آرايهها
:مثال
a=5; b=4; c=7;
>>save ‘G:\myfile.mat’ a c;
>>clear همهمتغيرهاپاکميشوند
>>a
??? Undefined function or variable 'a‘
>> load G:\myfile.mat
>>a
a=
5
>>b
??? Undefined function or variable ‘b‘
آرايهها
-3-13-1توابعودستوراتمفيددرفايلهايm
.1تابع):disp(xاينتابعمقداريکمتغيريايکرشتهمتنيرا
نمايشميدهد.
مثال:
;>> n=10
)>>disp(n
10
)’>> disp(‘This is a string
This is a string
آرايهها
-4-13-1توابعودستوراتمفيددرفايلهايm
.2تابع):x=input(sبرايگرفتنمقداريکمتغيرازورودي.
مثال:
)‘ n=input(‘Please tell me “n” value:
--------------------------------------------------
Please tell me “n” value: 10
=n
10
آرايهها
m توابعودستوراتمفيددرفايلهاي-4-13-1
.توقفموقتدرحيناجرا:pauseدستور .3
pause
pause(n) % n seconds
:مثال
%SAMPLE2: Enhanced Sample1
n=10;
a=input(‘ “a” value= ‘);
b=input(‘ “b” value= ‘);
c=n*a^3/b + 3*n*a^2/b^2 + 6*n*a/b^3;
disp(‘Please wait 5 seconds only!’);pause(5);
disp(‘Press any key to see answer.’); pause;
disp(‘ ”C” Value is= ‘); disp(c)
آرايهها
آرايهها
-1-2ايجادآرايه
روشهايايجادآرايه:
>>z=1:5
=z
12345
>>t=5:1
=t
Empty matrix: 1-by-0
آرايهها
-3-1-2ايجادآرايهبااستفادهازتوابع linsapceوlogspace
باارائهعناصراولوآخروطولآرايهبهاينتوابعميتوانآرايههاييخطيويالگاريتميبدست
آورد.
)ArrayName=linspace(first,last,length
مثال:
;>>x=linspace(0,1,11)*pi
)>>y=logspace(1,3,3
=y
10 100 1000
آرايهها
-3-1-2ايجادآرايهبااستفادهاز ترکيبيازعالئمفوق
مثال:
]>> x=[0,1,2, 4:2:12 ,18,19
=x
0 1 2 4 6 8 10 12 18 19
]>> y=[10,1,7,4,6,-1 ; linspace(0,10,6) ; 5:-1:0
=y
10 1 7 4 6 -1
0 2 4 6 8 10
5 4 3 2 1 0
آرايهها
-4-1-2ماتريسهايويژه
] [ :ماتريستهي ◼
: eyeيکماتريسيکهباابعاددادهشدهايجادميکند ◼
: onesيکماتريسکهتماميعناصرآنيکميباشندباابعاد داده ◼
شدهايجادميکند
: zerosيکماتريسصفرباابعاددادهشدهايجادميکند ◼
: randيکماتريسباعناصرراندومباتوزيعيکنواختبهابعادداده ◼
شدهايجادميکند
آرايهها
-4-1-2ماتريسهايويژه -ادامه...
مثال:
)>>ones(2,3
= ans
1 1
1 1
تمرين:سايرتوابعفوقراخودتانآزمايشکنيد.
آرايهها
-2-2عملياترياضيبررويآرايهها
.1عملياتاسکالر-آرايه- , + , ^ , / , \ , *:
.2عملياتعنصري- , + , .^ , . / , .\ , .* :
.3عملياتماتريسي( - , + , ^ , / , \ , *:بعداتوضيحداده
خواهدشد)
آرايهها
-1-2-2عملياترياضياسکالر-آرايه
بااستفادهازعملگرهايرياضيمطلببراحتيميتوانعمليات
رياضياسکالر-آرايهراانجامداد.
مثال:
;]>> x=[1 2 3;4 5 6; 7 8 9
>> y=2*x + 4
=y
6 8 10
12 14 16
18 20 22
آرايهها
-2-2-2عملياترياضيعنصريبيندوآرايه
بدينمنظوربايددوآرايهحتماهمبعدباشند.
مثال:
;]>> a=[2 4 6; 3 5 6; 10 -1 0
;]>> b=[-1 0 0; 2 1 1; 0 0 3
>> c= (2*a ./ (b+1)) .^ 2
=c
Inf 64 144
4 25 36
400 4 0
آرايهها
-3-2ترانهادهيکماتريس
برايمحاسبهترانهادهيکماتريسازعالمت‘ استفادهميشود.
مثال:
>> a=[2 1 7
4 5 -1
;]6, 6, 0
’>>b=a
2 4 6
1 5 6
7 -1 0
آرايهها
-4-2بکاربردنتوابعرياضيبررويآرايهها
توابعمطلببصورتماتريسيعملميکنند.يعنيالزمنيستتابعيمانند sinرايکبهيک
بررويعناصريکآرايهاعمالکرد.بلکهبراحتيميتوانبايکدستورمقدارسينوسکل
عناصرآرايهرامحاسبهنمود.
مثال:
;]>>a=[2 4 6; 3 5 6; 10 -1 0
)>>SinA=sin(abs(a) / 10
= SinA
0.1987 0.3894 0.5646
0.2955 0.4794 0.5646
0.8415 0.0998 0
آرايهها
تمرین 1-2
.1برنامهايبنويسيدکهعددصحيح nراازکاربربگيردوبرداري
100عنصريبين 0و 2nπايجادنمودهدرمتغير xقرار
دهد.سپسمقادير yراازرابطهزيرمحاسبهکردهنمايشدهد:
y=|sin(x)|*x2
.2برنامهفوقراطوريتغييردهيدکهعالوهبرمقدار،nعددي
بين 0و 1رانيزازکاربربگيردودرمتغيرجديد dقراردهد.
سپسبردار xرابين 0و 2nπاماباگامهاييبرابرباd
محاسبهنمايد.
آرايهها
-5-2استخراجبخشيازآرايه
)آرايهايازانديسها ,آرايهايازانديسها(m2=m1
مثال:
>>a=[1 2 3
456
;]7 8 9
;]>>k1=[1,2];k2=[2,3
)>>b=a(k1,k2
=b
2 3
5 6
آرايهها
-5-2استخراجبخشيازآرايه-ادامه-
)]>>c=a([1 2 3],[1,3
=c
1 3
4 6
7 9
)]>>d=a([3,2],[3,1
=d
9 7
6 4
آرايهها
-5-2استخراجبخشيازآرايه-ادامه-
)>>e=a([1,2,3],2
=e
2
5
8
)>>f=a(1:2:3 , 3:-2:1
=f
3 1
9 7
آرايهها
-5-2استخراجبخشيازآرايه-ادامه-
)>>g=a(1:3 , 1:2
=g
1 2
4 5
7 8
) >>h=a(1:2:3, :
=h
1 2 3
7 8 9
آرايهها
-5-2استخراجبخشيازآرايه-ادامه-
) >> k=a( : , :
=k
1 2 3
4 5 6
7 8 9
)>>l=a(1:end,end
=l
3
6
9
آرايهها
-5-2استخراجبخشيازآرايه-ادامه-
نکته:
)>>n=a([1 1 1] , :
=n
1 2 3
1 2 3
1 2 3
)]>>m=a( : , [3 3 3 3
=m
3 3 3 3
6 6 6 6
9 9 9 9
آرايهها
-5-2استخراجبخشيازآرايه-ادامه-
نکته:
) >>p=a( :
=p
1
4
7
2
5
8
3
6
9
آرايهها
تمرین 2-2 1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10
.1ماتريسسمتراسترابدون
واردکردنمستقيمعناصرايجاد 1 2 3 4 5 6 7 8 9 10
کنيد. 1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10
.2ماتريسيشاملستونهايسومتا 1 2 3 4 5 6 7 8 9 10
هشتموسطرهايچهارمتانهم 1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10
ماتريسفوقايجادکنيد.
1 2 3 4 5 6 7 8 9 10
آرايهها
-6-2حذفبخشيازآرايه
بمنظورحذفبخشيازيکآرايهميتوانماتريستهيرابهآنبخشنسبتداد:
>>a=[1 2 3
4 5 6
7 8 ]9
] [ = ) >>a(1 : 2 , :
=a
7 8 9
آرايهها
-7-2جستجويزيرآرايه
بمنظوريافتنعناصريازآرايهکهدرشرطخاصيصدقميکنندميتوانازدستورfind
استفادهکرد(ايندستورعناصررابصورتستونيشمارشميکند):
>>a=[ 1 2 3
4 5 6
7 8 ;]9
) >>k=find( a > 5
=k
3
6
8
9
آرايهها
-7-2جستجويزيرآرايه-ادامه-
)>>b=a(k
=b
7
8
6
9
آرايهها
-7-2جستجويزيرآرايه-ادامه-
دستور findدرصورتيکهبادوآرگومانخروجيبکاربردهشود،شمارهسطر
وستونعناصررابازميگرداند:
)>>[k1,k2]=find( a > 5
=k1 =k2
3 1
3 2
2 3
3 3
آرايهها
-8-2اندازهآرايه:
بااستفادهازدستورات lengthو sizeميتوانابعاديکآرايهرابدستآورد.
دستور lengthاگربرروييکبرداربکاربردهشود،تعدادعناصرآنرابازميگرداندواگربرروي يک
ماتريسبکاررود،بزرگترينبعدآنرابازميگرداند.
دستور sizeانعطافپذيرتربودهوميتواندبهروشهايزيربکاربردهشود:
اگربايکآرگومانوروديبکاربردهشود،طولوعرضماتريسرابازميگرداند. ◼
اگربادوآرگومانوروديبکاربردهشود،بطوريکهآرگوماندوم 1يا 2باشد،بترتيب ◼
تعدادسطرهاياستونهايماتريسرابازميگرداند
اگربايکآرگومانخروجيبکاربردهشود،تعدادسطروستونماتريسرادريکبردار ◼
سطريدوعنصريبازميگرداند
اگربادوارگومانخروجيبکاربردهشود،تعدادسطروستونماتريسرابترتيب در ◼
آرگوماناولودومبازميگرداند
آرايهها
-ادامه- اندازهآرايه-8-2
:مثال
>>a=[1 2 3 4
5 6 7 8];
>>size(a)
ans=
2 4
>>[r , c] = size(a) >>r=size(a , 1) >>c=size(a,2)
r= r= c=
2 2 4
c=
4
آرايهها
-8-2اندازهآرايه-ادامه-
مثال:
>>b=[1 2 3 ;]4
)>>l=length(b
=l
4
>>a=[1 2 3 4
5 6 7 ;]8
)>>la=length(a
=la
4
آرايهها
-9-2چندتابعبرايدستکاريآرايهها
: flipudماتريسراحولمحورافقي 180درجهميچرخاند. ◼
:fliplrماتريسراحولمحورعمودي 180درجهميچرخاند ◼
: rot90ماتريسرادرجهتمثلثاتي 90درجهميچرخاند ◼
:diagدرصورتيکهبرروييکماتريسبکاربردهشود،قطراصلي ◼
ماتريسرااستخراجميکند.امااگربرروييکبرداربکاررود،
ماتريسيقطريباعناصرآنبردارميسازد
آرايهها
تمرین 3-2
.1برنامهايبنويسيدکهماتريسيدوستونيراکهمقاديرستوناول آننمرات
دروسمختلفيکترميکدانشجوومقاديرستوندومآنتعدادواحد
مربوطهريکازآندروسميباشدراازکاربربگيردوعملياتزيررابر
رويانجامدهد
محاسبهتعدادواحدها
محاسبهمعدلترم
نمايشنتايجباپيغاممناسب
آرايهها
-1-3حلدستگاهمعادالتخطي
بااستفادهازعملياتضربوتقسيمماتريسيدرمتلببراحتيميتوان
دستگاههايمعادالتخطيراحتيدرموارديکهتعدادمعادالتبا
تعدادمتغيرهامساوينباشند،حلکرد.بدينمنظوربايدبردارسمت
راستمعادالترابرماتريسضرايبمتغيرهاتقسيمکرد.
آرايهها
-1-3حلدستگاهمعادالتخطي-ادامه
x + 2 y + 3z = 366
مثال:
4 x + 5 y + 6 z = 804
7 x + 8 y = 351
>>a=[1 2 3 ;]>>b=[366 ; 804 ; 351
4 5 6
;]7 8 0
>> x= a \ b يا يا >>x=a ^ (-1) * b >>x=inv(a) * b
=x
25
22
99
آرايهها
-2-3تعداديازتوابعماتريسي
◼ : detدترمينانماتريسرامحاسبهميکند
◼ : invمعکوسماتريسرامحاسبهميکند
◼ :traceمجموععناصرقطراصلييکماتريسرابازميگرداند
آرايهها
تکليف:1-3دستگاهمعادالتخطيزيرراحلکنيدوبهترينجوابرابدست
x + 2 y + 3 z + 7t = 4 آوريد:
6 x + 7 y + 22z + 32t = 5
98x + 5 y − 23z + t = 7
32x + 5 y − 75z + 23t = 1
22x + 2 y + 3 z + t = 0
تکليف:2-3برنامهايبنويسيدکهماتريسضرايبومقاديرسمتراستيک
دستگاهمعادالتخطيراازکاربربگيردوپاسخدستگاهراباپيغام مناسب
نمايشدهد.