خلاصه مطالب
نکاتی بیشتر در مورد کار با ماتریس ها (آرایه ها).
رشته (String)
تعریف ساختار (Structure).
تعریف آرایه سلولی (Cell array).
توابع مربوط به زمان اجرا
توابع مربوط به فایلهای صوتی
کار با ماتریس (آرایه)
تعریف آرایه:
A=[1 2 3] تعریف آرایه 3*1 (بردار)
X=[1; 2; 3] تعریف آرایه1*3 (بردار)
Y=[1 2 3;4 5 6] تعریف آرایه 3*2
برای دسترسی به یک عنصر خاص از اندیس استفاده می کنیم. در MATLAB اندیس از 1 شروع می شود.
A(1,1) یا A(1) A(1,2) یا A(2) A(1,3) یا A(3)
X(1,1) یا X(1) X(2,1) یا X(2) X(3,1) یا X(3)
Y( 1,1) Y(2,2) Y(2,3)
Y(:,1) تمام عناصر ستون 1 را بر می گرداند. یعنی [1;4]
Y(1,1:2) عناصر Y(1,1) و Y(1,2) را برمی گرداند.
Y(1:2,1:2) عناصر Y(1,1) ، Y(2,1) ، Y(1,2) و Y(2,2) را بر می گرداند.
4
الحاق عنصر (عناصر) به آرایه
الحاق عناصر به آرایه
X=[1 2 3];
Y=[X -5]; Y=[1 2 3 -5] می شود.
می توان نوشت: X=[X -5] در این صورت X=[1 2 3 -5] می شود.
اگر X=[1 2 3] و بنویسیم Y=[X; -3 4 5] در این صورت :
اگر X=[1 2 3] و بنویسیم Y=[X;-5] خطا رخ می دهد. باید حتما یک سطر کامل مشخص کنیم.
5
دو تابع برای الحاق عناصر
Horzcat: اتصال عناصر به صورت افقی (ستونی)
Horzcat([1 2 3],[4 5 6])=C
C=[1 2 3 4 5 6]
Vertcat: اتصال عناصر به صورت عمودی(سطری)
C=vertcat([1 2 3],[4 5 6])
معادل با C=[1 2 3;4 5 6] است.
6
محاسبه مجموع و میانگین آرایه
تابع sum برای محاسبه مجموع عناصر آرایه به کار می رود.
اگر یک بردار داشته باشیم مثلا x=[1 2 3] ، sum(x) مجموع عناصر آن را بر می گرداند.
اگر بردار نباشد مثلا x=[1 2 3;4 5 6] ، sum(x) مجموع عناصر هر ستون را به طور مجزا حساب می کند و [5 7 9] را بر می گرداند. با نوشتن به صورت sum(sum(x)) مجموع همه عناصر حساب می شود.
Sum(x,1) معادل sum(x) عمل می کند.
Sum(x,2) مجموع هر سطر را به طور مجزا محاسبه می کند. در مثال بالا [6;15]
برای آرایه های بیش از 2 بعد می توانیم sum(x,3) ، sum(x,4) و…. هم داشته باشیم.
تابع mean برای محاسبه میانگین آرایه به کار می رود.
طرز نوشتن و کار با ان دقیقا مشابه sum است . فقط در اینجا به جای مجموع میانگین محاسبه می شود.
7
محاسبه ابعاد و طول
تابع size برای محاسبه ابعاد به کار می رود:
اگر X آرایه دو بعدی 4*3 باشد Size(X) تعداد سطر و ستون آن را بر می گرداند یعنی 3 و 4
برای آرایه های با ابعاد بالاتر نیز به همین ترتیب انجام می شود.
تابع length: برای بردار طول را برمی گرداند و برای آرایه ها بزرگترین بعد را می دهد. مثلا اگر X ، 5*7*9 باشد 9 را برمی گرداند.
8
جستجوی مقدار در آرایه
تابع find برای جستجوی عناصر در آرایه به کار می رود.
X=[1 2 -3;4 -9 0]
[a b]=find(X==-3)
در این صورت a=1 (شماره سطر عنصر 3-) و b=3 (شماره ستون) می شود.
X=[1 2 -3;4 -3 0]
در این صورت a=[2;1] و b=[2;3] می شود.
9
چند تابع مفید دیگر
rand: تولید نمونه ها تصادفی بین [0,1] با توزیع یکنواخت
rand(2,3) یک آرایه 3*2 از مقادیر تصادفی تولید می کند.
rand(4,5,10) یک آرایه 10*5*4 از مقادیر تصادفی تولید می کند.
randn : تولید نمونه های تصادفی از توزیع نرمال استاندارد
طرز استفاده دقیقا مشابه rand است.
توابع ones و zeros: در جلسه قبل توضیح داده شد.
10
رشته (String)
رشته مجموعه ای از کاراکترها می باشد.
رشته با علامت ‘ ‘ نشان داده می شود.
S=’Ali’
در واقع S به صورت یک آرایه کاراکتری 3*1 در نظر گرفته می شود.
S=[S ‘ hassan’]
S=‘Ali hassan’ می شود.
دو تابع num2str و str2num به ترتیب برای تبدیل عدد به رشته و بالعکس به کار می رود.
num2str(23)
D=’123′
Str2num(D)
11
ساختار(Structure)
مثال از تعریف structure:
St.f1=[1 2 3]
St.f2=[3 4;5 6]
St.f3=‘Ali’
با این سه دستور یک structure به نام STبا سه field f1، f2 و تعریف کرده ایم.
اگر بنویسیم St.f1 آرایه [1 2 3] برگشت داده می شود.
اگر بنویسیم St.f1(2) عنصر دوم St.f1 برگشت داده می شود.
12
آرایه سلولی (Cell array)
یک Cell array به نام A را می توان به صورت زیر تعریف کرد:
A{1}=[1 2 3];
A{2}=[3 4;5 6]
A{3}=‘Ali’
در این صورت یک Cell array با اندازه 3 ایجاد کرده ایم.
اگر بنویسیم A{1} آرایه [1 2 3] برگشت داده می شود.
اگر بنویسیم A{2}(1,2) عدد 4 برگشت داده می شود.
توضیحات برنامه
علامت %
%this is comment
امکان کامنت چندخطی (بلوکی) در نسخه 7
%{
%}
13
دستور format
تعیین نحوه نمایش اعداد
format short نمایش تا پنج رقم اعشار .
format long نمایش تا 15 رقم اعشار
format hex نمایش مبنای 16 عدد
اگر از دستور format استفاده شد تا زمانی که شیوه نمایش را عوض نشود مطلب از شیوه فعلی برای نمایش استفاده می کند
14
15
ذخیره وبازیابی متغیرهای workspase
دستور save
اگر بدون پارامتر باشد تمامی متغیرها را در یک فایل باینری به نام matlab.mat ذخیره می کند
save filename x,y,zذخیره کردن متغیرهای خاص:
دستور load
اگر بدون پارامتر باشد تمامی متغیرهایی که در فایل باینری matlab.mat ذخیره شده اند را لود می کند
16
17
محاسبه زمان اجرای دستورات
اگر قبل از مجموعه ای از دستورات جمله tic و بعد از نوشتن آنها جمله toc را بنویسم علاوه بر اجرای دستورات زمان اجرای کلی آنها هم نشان داده می شود.
اگر قبل از مجموعه ای از دستورات جمله profile on و بعد از آنها جمله profile report قرار دهیم زمان اجرای هر دستور در یک سری فایلهای html نشان داده خواهد شد. به علاوه برای توابع زمان اجرای دستورات داخلی آنها هم نشان داده می شود.
18
profile on
syms x;
solve(x^2-1);
profile report
دستورات مربوط به فایلهای صوتی
[Y,FS,NBITS]=waveread(file_name)
خواندن فایلهای wav
Y : دامنه نمونه ها که در بازه [-1,+1] قرار دارند
FS: فرکانس نمونه برداری برحسب هرتز
NBITS: تعداد بیتهای هر نمونه
19
دستورات مربوط به فایلهای صوتی
wavwrite(Y,FS,NBITS,file_name)
ذخیره نمونه ها در یک فایل
wavplay(Y,FS)
پخش فایل صوتی
wavrecord(N,FS)
رکورد کردن N نمونه با نرخ FS از میکروفن کامپیوتر
20
استفاده از دستور help
help دستور مورد نظر
توجه: تمامی دستورات مطلب با حروف کوچک هستند ولی ممکن است در help با حروف بزرگ نوشته شده باشند
اگر چند حرف اول دستور را بنویسید و کلیه tab را بزنید، لیستی از دستورات که با این حروف شروع می شوند نمایش داده می شود
21