همانطور که در پست قبلی در مورد متلب گفته شد، کلمه MATLAB از ترکیب چند حرف اول عبارت matrix laboratory گرفته شده است. درواقع اکثر زبانهای برنامهنویسی با اعداد کار میکنند اما متلب –برای تحلیل دادهها- از ماتریسها و آرایهها استفاده میکند.
یعنی هر نوع دادهای که به متلب بدهید آنها را تبدیل به متغیرهایی از نوع «آرایههای چندبعدی» میکند.
ساخت آرایه
آرایه تکبعدی
برای اینکه یک آرایه یکخطی دارای چهار عنصر بسازید، بین عناصر از کاما (,) یا فاصله (کلید space بر روی کیبورد) استفاده کنید.
یک آرایه یکخطی با چهار عنصر را بهصورت a = 1 x 4 نشان میدهند. چهار عنصر آرایه a عبارتاند از 1 2 3 و 4.
این نوع آرایه یک بردار ردیفی است.
مثلاً:[a=[1 2 3 4
آرایه چندبعدی
برای ساخت ماتریسهایی با چند سطر، بین سطرها از نقطهویرگول استفاده کنید (برای این منظور ابتدا کیبورد خود را به زبان انگلیسی درآورده و دکمه (;) را فشار دهید). به آرایه زیر توجه کنید:
a = [12 22 13; 15 11 26; 10 22 11]
a = 3 x 3
12 22 13
15 11 26
10 22 11
یک مدل دیگر ساخت ماتریس استفاده از تابع است، مثل تابع zeros، ones یا rand.
تابع
– تابع zeros
تابع zeros تابعی است که تمام عناصر آن صفر است و معمولاً برای ایجاد حافظه و آمادهسازی برای اجرای برنامهها به کار میرود. این ماتریس نیز میتواند بهصورت تکبعدی یا چندبعدی باشد، مثلاً ماتریس زیر یک ماتریس پنج در یک است که هر پنج عنصر آن صفر هستند.
z = zeros (5, 1)
z = 5 x 1
0
0
0
0
0
بهعنوان یک نمونه دیگر به ماتریس زیر توجه کنید:
d = zeros (3, 4, 5)
d یک ماتریس سهبعدی 3 در 4 در 5 است که همه عناصر آن صفرند.
– تابع ones
تابع ones نیز تابعی است که همه عناصر آن یک است. خروجی این تابع در هر عددی که ضرب شود، همه عناصر آن برابر با آن عدد میشوند. مثلاً
a = ones (5)
a یک ماتریس مربعی 5 در 5 است که همه عناصر آن یک هستند.
b = 5 x ones (3)
در مثال بالا نیز b یک ماتریس مربعی 3 در 3 است که همه عناصر آن 5 هستند – چون تابع ones در عدد 5 ضرب شده.
– تابع rand
عبارت rand از random به معنی تصادفی میآید؛ بنابراین میتوان گفت تابع rand تابعی است که آرایهها و اعداد آن بهصورت تصادفی انتخاب شدهاند. هر بار که تابعهای rand را فرامیخوانید عناصر آن بهصورت رندم تغییر میکنند.
در حالت طبیعی رنج انتخاب اعداد بین صفر و یک است مگر اینکه خود شما رنج آن را انتخاب کنید؛ مثلاً:
c = rand (n, m)
c یک تابع m در n دوبعدی است که عناصر آن بین صفر و یک هستند.
e = rand (n, m * 9)
تابع e نیز تابعی m در n است که عناصر آن بین صفر و 9 است.
اما اگر شما بخواهید شروع طیف اعداد تصادفی از صفر نباشد باید از فرمول زیر استفاده کنید:
k = min + (max-min) * rand
min < rand < max
به مثال زیر توجه کنید: (روی عکس کلیک کنید و آن را بزرگ ببینید)
پرسش و پاسخ درباره آموزش نرمافزار متلب: ماتریسها و آرایهها – قسمت دوم
1. ماتریسها در نرمافزار متلب چیستند؟
ماتریسها در نرمافزار متلب ساختارهای دادهای هستند که به شما امکان میدهند تا دادهها را در قالب جداول با ردیفها و ستونها ذخیره کنید. هر ماتریس شامل تعدادی عنصر است که میتوانند مقادیر مختلفی از جمله عددی، منطقی یا پیچیده باشند. در متلب، ماتریسها یکی از انواع اصلی داده هستند و به صورت پیشفرض تمام محاسبات در متلب بر اساس ماتریسها انجام میشوند.
2. چگونه میتوان یک ماتریس را در متلب تعریف کرد؟
برای تعریف یک ماتریس در متلب، میتوانید از دستورات ساده استفاده کنید. به عنوان مثال:
A = [1 2 3; 4 5 6; 7 8 9];
در این مثال، ماتریس A
یک ماتریس ۳x۳ است که سه ردیف و سه ستون دارد.
3. نحوه دسترسی به عناصر ماتریس در متلب چگونه است؟
برای دسترسی به یک عنصر خاص در ماتریس، میتوانید از نشانی ردیف و ستون آن عنصر استفاده کنید. به طور مثال:
A(2,3)
این دستور عنصر در ردیف ۲ و ستون ۳ ماتریس A
را نمایش میدهد.
4. چگونه میتوان ماتریسها را در متلب با یکدیگر جمع یا ضرب کرد؟
در متلب، برای جمع یا ضرب ماتریسها از عملیاتهای مشابه با ریاضیات استفاده میکنید:
- برای جمع ماتریسها:
C = A + B;
- برای ضرب ماتریسها (ضرب ماتریسها باید از نظر ابعادی متناسب باشند):
D = A * B;
- برای ضرب عنصر به عنصر:
E = A .* B;
5. چگونه میتوان یک ماتریس را در متلب تبدیل یا چرخاند؟
برای تبدیل یک ماتریس در متلب (معروف به ترانسپوز)، از علامت '
استفاده میشود:
A_transpose = A';
این دستور ماتریس A
را به ماتریس ترانسپوز آن تبدیل میکند.
6. چگونه میتوان یک ماتریس را با مقدار ثابت در متلب ضرب یا جمع کرد؟
برای ضرب یا جمع یک ماتریس با یک عدد ثابت، کافی است عدد را قبل از ماتریس بنویسید:
- جمع:
F = A + 5;
- ضرب:
G = 2 * A;
7. نحوه استفاده از توابع داخلی برای ایجاد ماتریسها در متلب چگونه است؟
متلب توابع مختلفی برای ساخت ماتریسها دارد، به عنوان مثال:
zeros(m, n)
برای ایجاد یک ماتریسm x n
از صفرها:Z = zeros(3,4); % ماتریس 3x4 پر از صفر
ones(m, n)
برای ایجاد یک ماتریسm x n
از یکها:O = ones(2,2); % ماتریس 2x2 پر از یک
eye(n)
برای ایجاد ماتریس همانی:I = eye(4); % ماتریس همانی 4x4
8. چگونه میتوان یک آرایه در متلب ایجاد کرد؟
آرایهها مشابه ماتریسها هستند، با این تفاوت که میتوانند ابعاد مختلفی داشته باشند. برای ایجاد آرایه در متلب از نشانههای مشابه استفاده میشود:
A = [1, 2, 3, 4, 5]; % آرایه یکبعدی
B = [1; 2; 3; 4; 5]; % آرایه عمودی (ستونی)
9. چگونه میتوان مقادیر خاصی را از یک ماتریس یا آرایه انتخاب کرد؟
برای انتخاب مقادیر خاص از یک ماتریس یا آرایه، میتوانید از اندیسگذاری استفاده کنید. به عنوان مثال:
- انتخاب تمام مقادیر یک ردیف:
row = A(2,:); % تمام ستونهای ردیف دوم
- انتخاب تمام مقادیر یک ستون:
column = A(:,3); % تمام ردیفهای ستون سوم
10. چه تفاوتی بین ماتریسها و آرایههای چندبعدی در متلب وجود دارد؟
ماتریسها در متلب همیشه دو بعد دارند، در حالی که آرایهها میتوانند بیش از دو بعد داشته باشند. برای تعریف یک آرایه چندبعدی، کافی است بعد جدید را اضافه کنید:
A = rand(3,3,4); % آرایه سهبعدی 3x3x4
این آرایه دارای ۳ ردیف و ۳ ستون در هر یک از ۴ لایه است.
11. چگونه میتوان به صورت مستقیم اندازه یک ماتریس یا آرایه را در متلب مشاهده کرد؟
برای مشاهده ابعاد یک ماتریس یا آرایه از تابع size
استفاده میشود:
sz = size(A); % ابعاد ماتریس A
این دستور ابعاد ماتریس یا آرایه را در قالب یک بردار باز میگرداند.
12. چگونه میتوان در متلب یک ماتریس را به طور تصادفی پر کرد؟
برای پر کردن یک ماتریس با مقادیر تصادفی، از تابع rand
برای اعداد تصادفی بین ۰ و ۱ استفاده میشود:
R = rand(3,3); % ماتریس تصادفی 3x3
همچنین برای پر کردن ماتریس با اعداد تصادفی در بازههای خاص میتوانید از randi
یا randn
(برای اعداد نرمال) استفاده کنید.
13. نحوه انجام عملیاتهای ریاضی با ماتریسها در متلب چیست؟
ماتریسها در متلب به راحتی میتوانند در عملیاتهای ریاضی مانند جمع، تفریق، ضرب و تقسیم شرکت کنند. علاوه بر آن، میتوانید از توابع خاص برای محاسبات پیچیدهتر مانند معکوس ماتریس (inv
) یا تعیین دترمینان (det
) استفاده کنید:
det_A = det(A); % دترمینان ماتریس A
inv_A = inv(A); % معکوس ماتریس A
14. آیا متلب از عملیاتهای منطقی روی ماتریسها پشتیبانی میکند؟
بله، متلب از عملیاتهای منطقی مانند AND، OR، NOT و مقایسههای منطقی برای ماتریسها پشتیبانی میکند. به طور مثال:
L = A > 5; % مقایسه هر عنصر ماتریس A با 5
این دستور یک ماتریس منطقی باز میگرداند که در آن هر عنصر نشاندهنده نتیجه مقایسه است.
15. آیا میتوان در متلب ماتریسها و آرایهها را تغییر اندازه داد؟
بله، در متلب میتوان ماتریسها و آرایهها را تغییر اندازه داد. برای این کار از دستور resize
یا به سادگی با استفاده از دستورات جایگزین میتوانید اندازه آرایه را تغییر دهید:
A(3,4) = 10; % افزودن یک عنصر به ماتریس A
این دستور به ماتریس A
بعد جدیدی اضافه کرده و مقدار آن را به ۱۰ تنظیم میکند.