آموزش آرایه و ماتریس در متلب به همراه مثال (قسمت چهارم)

آرایه و ماتریس در متلب
امروز در سری جلسات آموزش متلب با آموزش آرایه و ماتریس در متلب با شما هستیم.
آرایه ها در متلب
آرایه، لیستی از اعداد مرتب شده در سطرها (و/یا) ستونها است. آرایه ی یک بعدی، یک سطر یا ستون از اعداد است و آرایه ی دو بعدی مجموعه ای از اعداد در سطر و ستون (ماتریس) است. عملیات آرایه ای به صورت عنصر به عنصر است.
بردار سطری
یک بردار، شامل یک سطر یا ستون از عناصر است. در بردار سطری عناصر با کاما و یا فضای خالی (space) بين عناصر در داخل کروشه از یکدیگر تفکیک می شوند. به عنوان مثال:
[x = [7 -12 -5 8
[x = [7, -1,2,-5,8
هر دو، یک بردار سطری ایجاد می کنند.
ایجاد بردار به کمک توابع موجود در MATLAB
سه تابع معروف در MATLAB برای ایجاد بردار وجود دارد که به شرح زیر است:
تابع | توضیحات | |
---|---|---|
x = a : b : c | مقادیر بین a و b را با گام c ایجاد می کند.(دنباله حسابی) | |
(x=linspace(a,b,c | مقادیر بین a و b را به c قسمت تقسیم می کند.(دنباله هندسی) | |
(x = logspace ( a , b ,c | ایجاد آرایه ی لگاریتمی باساختاری همچون linspace |
به عبارت زیر دقت کنید:
1 | x=pi* (0:0.1:1) |
1 2 3 4 5 6 7 8 9 | x = Columns 1 through 8 0 0.3142 0.6283 0.9425 1.2566 1.5708 1.8850 2.1991 Columns 9 through 11 2.5133 2.8274 3.1416 |
مقادیر بین 0 و 1 را با گام 0.1 را در عدد Π ضرب کرده و نمایش می دهد.
1 | x=linspace (0,pi ,11) |
1 | x=linspace (0,pi ,11) |
1 2 3 4 5 6 7 8 9 | x = Columns 1 through 8 0 0.3142 0.6283 0.9425 1.2566 1.5708 1.8850 2.1991 Columns 9 through 11 2.5133 2.8274 3.1416 |
این دستور فاصله ی بین 0 تا Π را به ۱۱ قسمت مساوی تقسیم می کند.
• در حالت اول که از دو نقطه استفاده کرده ایم، تعداد داده هارا نمی توان مشخص کرد.
• در حالت دوم که از دستور linspace استفاده شده است، مقدار گام(نمو) مشخص نیست ولی تعداد تقسیماتمشخص است.
برای ایجاد آرایه های لگاریتمی از دستور logspace استفاده می شود:
1 | x = logspace(0,2,3) |
1 2 3 | x = 1 10 100 |
عملکرد دستور logspace را می توان به دو دسته تقسیم کرد:
- بخش اول linspace
- خروجی حالت قبل را به عنوان توان برای ۱۰ استفاده می کنیم
بردار ستونی
در بردار ستونی عناصر با سميكالن، بين عناصر در داخل کروشه از یکدیگر تفکیک می شوند. به عنوان مثال:
1 | x=[7; -1;2 ;5 ;8] |
1 2 3 4 5 6 7 | x = 7 -1 2 5 8 |
توابع بیان شده در بخش بردارهای سطری نیز با ترانهاده کردن آنها (‘) در بردارهای ستونی قابل استفاده هستند.
ماتریس در متلب
ماتریس آرایه ای دوبعدی از اعداد در سطر و ستون است. ماتریس از یک سری سطر متوالی که عناصر سطرها با کاما و یا فضای خالی و سطر بعدی با سميكالن از سطر قبلی جداشده است، تشکیل یافته است. ماتریس محصور در داخل یک جفت کروشه است. عناصر ماتریس ممکن است اعداد حقیقی یا اعداد مختلط باشند. به عنوان مثال جهت تشکیل ماتریس زیر با استفاده ازMATLAB :
دستور ورودی MATLAB:
1 | A = [1 3 -4 ;0 -2 8] |
1 2 3 4 | A = 1 3 -4 0 -2 8 |
به همین ترتیب برای عناصر مختلط ماتریس B داریم:
آدرس دهی آرایه ها
عموما دو نوع آدرس دهی در MATLAB مرسوم است. آدرس دهی به صورت سطر و ستون و دیگری آدرس دهی تک رقمی. به تصویر زیر دقت کنید:
شکل بالا همچون یک ماتریس ۳ در ۳ است که هر یک از جایگاه های موجود در این ماتریس به دو طریق آدرسی شده است. دو نوع شیوهی آدرس دهی بیان شده را در مثال های زیر می توانید مشاهده کنید:
1 | a=[1 2 1;4 5 3;2 8 7] |
1 2 3 4 5 | a = 1 2 1 4 5 3 2 8 7 |
1 | a(3) |
1 2 3 | ans = 2 |
1 | a(3,1) |
1 | a(3,1) |
1 2 3 | ans = 2 |
علامت دونقطه (:) می تواند در MATLAB به آدرس دهی طیف وسیعی از عناصر در یک بردار و یا ماتریس مورداستفاده قرار گیرد.
علامت دونقطه برای بردارها
(:)v به تمام عناصر بردارV (چه بردار سطری و چه ستونی) اشاره دارد.
( V( m : n به المانهای m تا n ام بردار V اشاره دارد.
(V ( m : a : n به المانهای m تا n ام بردار V با گام a اشاره دارد.
1 | v = [25 -1 11 8 4 7 -3 11] |
1 2 3 | v = 25 -1 11 8 4 7 -3 11 |
1 | u = v (2:8) |
1 2 3 | u = -1 11 8 4 7 -3 11 |
1 | v(3:-1:1) |
1 2 3 | ans = 11 -1 25 |
1 | v(2:2:9) |
1 2 3 | ans = -1 8 7 11 |
اگر بخواهیم عناصر خاصی از یک آرایه را انتخاب کنیم، کافی است به صورت زیر، عناصر موردنظر را درون یک جفت کروشه قرار دهیم.
1 | v([7 2 6 1]) |
1 2 3 | ans = -3 -1 7 25 |
علامت دونقطه برای یک ماتریس در متلب
جدول زیر استفاده از دو نقطه در آدرس دهی آرایه ها در یک ماتریس را نشان می دهد.
فرمان | توضیحات |
---|---|
(A(:,n | به تمام عناصر ستون n ام از ماتریس A اشارهدارد |
(:,A(n | به تمام عناصر سطرn ام از ماتریس A اشارهدارد |
(A(:,n:m | به تمام عناصر ستونmتاn ام از ماتریس A اشارهدارد |
(:,A(m:n | به تمام عناصر سطرmتاn ام از ماتریس A اشارهدارد |
(A(m:n,p:q | به تمام عناصر مشترک سطرهای mتاn ام وستون هایpتاq از ماتریس A اشارهدارد |
اضافه کردن عناصر به یک بردار و یا یک ماتریس
هر متغير شامل یک بردار یا یک ماتریس با افزودن عناصر به سطر یا ستون های آن می تواند تغییر کند. با اضافه نمودن سطر و یا ستون به یک ماتریس و یا بردار می توان آرایهی جدیدی ایجاد نمود.
حذف المان ها
یک عنصر و یا مجموعه ای از عناصر ذخیره شده در یک متغیر را می توان حذف نمود. این کار خیلی ساده است، فقط کافی است جهت حذف یک عنصر در بردارها، آدرس عنصر موردنظر را معادل یک جفت کروشه خالی قرار داد و در مورد ماتریس ها، آدرس یک سطر و یا یک ستون را معادل یک جفت کروشه خالی قرار داد.
مثال | توضیحات | تابع |
---|---|---|
(ones(2 | ایجاد یک ماتریس a در a که همه ی درایه های این ماتریس عدد یک هستند | (ones(a |
(ones(1,2 | ایجاد یک ماتریس a در b که همه ی درایه های این ماتریس عدد یک هستند | (ones(a,b |
(zeros(2 | ایجاد یک ماتریس a در a که همه ی درایه های این ماتریس عدد صفر هستند | (zeros(a |
(zeros(1,2 | ایجاد یک ماتریس a در b که همه ی درایه های این ماتریس عدد صفر هستند | (zeros(a,b |
(eye(2 | ایجاد یک ماتریس همانی a در a | (eye(a |
(eye(1,2 | ماتریس با وِیژگی همانی که مربعی نیست. | (eye(a,2 |
rand | تولید یک عدد تصادفی بین صفر و یک | rand |
(rand(2 | ایجاد یک ماتریس a در a با اعداد تصادفی بین صفر و یک | (rand(a |
(rand(1,2 | ایجاد یک ماتریس a در b با اعداد تصادفی بین صفر و یک | (rand(a,b |
(randperm(5 | این دستور یک بردار سطری aعضوی با جایگشت 1 تا a ایجاد می کند | (randperm(a |
(randi([-5,5],10,1 | ایجاد یک ماتریس p در q با اعداد صحیح بین aوb | (randi([a,b],p,q |
تعدادی از توابع داخلی MATLAB برای مدیریت و تنظیم آرایه ها در جدول زیر آورده شده است
توضیحات | تابع |
---|---|
طول آرایه A را برمی گرداند | (length(A |
یک بردار شامل دو عنصور [m,n]را برمی گرداند که ابعاد ماتریس A هستند. | (,size(A |
این دستور برای چینش مجدد عناصر ماتریس A استفاده می شود،اگر A شامل rسطر و q ستون باشد ،این دستور A را به m سطر و n ستون تبدیل می کند. توجه:عناصر r*s باید با m*nبرابر باشند. | (reshape(A,m,n |
Vیک بردار است،این دستور یک ماتریس قطری ایجاد می کند که عناصر روی قطر اصلی آن عناصر بردار V باشند. | (diag(V |
اگر A ماتریس باشد ،این دستور یک بردار ستونی از عناصر روی قطر اصلی ماتریس A را می دهد. | (diag(A |
پیشنهاد مطالعه: عملیات روی ماتریس ها در متلب (قسمت پنجم)
برای رفتن به لیست آموزش های متلب روی دکمه زیر کلیک کنید
به این آموزش امتیاز دهید
نظرات کاربر
4 (10 رای)درباره فرهاد حمیدی
مدیرسایت فراکد،دانشجوی رشته ی مهندسی مکانیک،علاقه مند به برنامه نویسی و طراحی صنعتی که دوست دارم تجربیاتم رو با دیگران به اشتراک بگذارم.
نوشته های بیشتر از فرهاد حمیدیمطالب زیر را حتما بخوانید
بهترین نرم افزارهای طراحی خودرو برای مهندسان مکانیک و طراحان صنعتی
454 بازدید
آموزش نصب pdms v12.1 به همراه فعالسازی به صورت قدم به قدم
1.23k بازدید
آموزش نصب کی شات (keyshot) به همراه فعالسازی نرم افزار کی شات
1.22k بازدید
نرم افزارهای مهندسی مکانیک در لینوکس به همراه روش نصب
1.18k بازدید
آموزش نصب کامسول (Comsol) + ویدیو
1.11k بازدید
16 دیدگاه
به گفتگوی ما بپیوندید و دیدگاه خود را با ما در میان بگذارید.
چطور میتوان یک ماتریس ۳در۳ را با یک ماتریس۲در۲ با ضمیمه کردن ادغام کرد؟
سلام،باید ابعاد دو ماتریس یکسان باشن یا تعدا ستون ها برابر [A;B]
چطور میتونم یک چهارم بالا سمت چپ یک عکسو با بک چهارم پایین سمت راست جا ب جا کنم ؟؟
سلام،خیلی ساده هست یکم فکر کنید میتونید انجام بدید.
سلام
برای جمع کردن یک به یک عناصر ماتریس با ماتریس دیگر چگونه عمل کنیم؟
مثلا میخوام عناصر (A=(4,5,8,۲ یک به یک با عناصر (B=(3,7 جمع بشن.
ممنون
سلام
A + B
سلام چطورمیشه یه ماتریس ده در ده از متلب درخواست کرد
سلام،
(10)randi
سلام چجور یک برنامه بنویسم ک کار دستور diagرا انجام دهد
علیک سلام،متن زیر رو سرچ کنید
diag code in matlab
سلام چطور میتونم یک فایل ماتریس را در متلب لود کنم؟
علیک سلام
load('handel.mat','y')
بجای handel اسم فایل و به جای y اسم ماتریش رو بنویس
سلام چطور میتونم به متلب دستوری بدم که این کار رو انجام بده:, مقادیر بزرگتر از یک عدد مثلاً ۴۰ رو از بردار جدا کرده و در یک بردار دیگه ذخیره کنه
ممنون
سلام،اگر نام ماتریس A باشه اینطور میشه
(B = find(A>40
سلام چطور میتونم اسم خودم رو بصورت گرافیکی یا نموداری با استفاده از ماتریس ها بنویسم تو متلب
علیک سلام،متوجه منظورتون نشدم