0% found this document useful (0 votes)
25 views42 pages

Week2a Chap4 Marix

Uploaded by

Ali
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
25 views42 pages

Week2a Chap4 Marix

Uploaded by

Ali
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 42

‫آرايه‌ها‬

‫ذخيره‌و‌بازيابي‌متغيرها‪‌:‬دستورات‌‪ 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‬ايجاد‌آرايه‬
‫روشهاي‌ايجاد‌آرايه‪:‬‬

‫با‌استفاده‌از‌عالئم‌; ‪ ,‌،‬و‌] [‬ ‫‪.1‬‬


‫با‌استفاده‌از‌عالمت‌‪:‬‬ ‫‪.2‬‬
‫با‌استفاده‌از‌توابع‌‪ linspace‬و‌‪logspace‬‬ ‫‪.3‬‬
‫با‌استفاده‌از‌ترکيبي‌از‌روشهاي‌فوق‬ ‫‪.4‬‬
‫آرايه‌ها‬
‫‪ -1-1-2‬ايجاد‌آرايه‌با‌استفاده‌از‌عالئم‌; ‪‌,‌،‬و‌[‌]‬
‫از‌عالمت‌; براي‌تعيين‌سطر‌جديد‌و‌از‌عالمت‌‪ ,‬براي‌تعيين‌ستون‌جديد‌‬
‫استفاده‌مي‌شود‪.‬‬
‫مثال‪:‬‬
‫]‪>> a=[1,2,3;4,5,6‬‬
‫=‪a‬‬
‫‪123‬‬
‫‪456‬‬
‫]‪>> b=[1,2,3,4,5,6‬‬
‫=‪b‬‬
‫‪123456‬‬
‫آرايه‌ها‬
‫‪ -1-1-2‬ايجاد‌آرايه‌با‌استفاده‌از‌عالئم‌; ‪ ,‌،‬و‌[‌]‬
‫نکته‪ :‬بجاي‌عالمت‌; از‌‪ enter‬و‌بجاي‌عالمت‌‪ ,‬از‌فاصله‌خالي‌نيز‌‬
‫مي‌توان‌استفاده‌کرد‬
‫مثال‪:‬‬
‫‪>> c=[1 2,3‬‬
‫]‪4 5 6;7 8,9‬‬
‫=‪c‬‬
‫‪1 2 3‬‬
‫‪4 5 6‬‬
‫‪7 8 9‬‬
‫آرايه‌ها‬
‫‪ -2-1-2‬ايجاد‌آرايه‌با‌استفاده‌از‌عالمت‌”‪“:‬‬
‫در‌مواقعي‌که‌عناصر‌يک‌آرايه‌رابطه‌خطي‌با‌يکديگر‌داشته‌باشند از‌اين‌‬
‫روش‌مي‌توان‌استفاده‌کرد‪.‬‬
‫شکل‌کلي‌دستور‌بصورت‌زير‌است‪:‬‬
‫‪ArrayName=first : step : last‬‬
‫‪ -‬اگر‌‪ step‬حذف‌شود‪‌،‬مقدار‌‪ 1‬بجاي‌آن‌بکار‌خواهد‌رفت‪.‬‬
‫‪ -‬اگر‌‪ last‬کوچکتر‌از‌‪ first‬باشد‪‌،‬بايد‌‪ step‬منفي‌باشد‪‌.‬در‌غير‌‬
‫اينصورت‌مقدار‌آرايه‌تهي‌خواهد‌شد‪.‬‬
‫آرايه‌ها‬
‫‪ -2-1-2‬ايجاد‌آرايه‌با‌استفاده‌از‌عالمت‌”‪ -“:‬ادامه‪...‬‬
‫مثال‪:‬‬
‫;‪>> x=(0 : 0.1 : 1) * pi‬‬
‫;)‪>> y=sin(x‬‬

‫‪>>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‬‬ ‫‪1‬‬ ‫‪1‬‬
‫)‪>>ones(2‬‬
‫= ‪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‬برنامه‌اي‌بنويسيد‌که‌ماتريس‌ضرايب‌و‌مقادير‌سمت‌راست‌يک‌‬
‫دستگاه‌معادالت‌خطي‌را‌از‌کاربر‌بگيرد‌و‌پاسخ‌دستگاه‌را‌با‌پيغام مناسب‌‬
‫نمايش‌دهد‪.‬‬

You might also like