دستورات مهم و ابتدایی در MATLAB
Table of Contents
- ایجاد ماتریس
- ترانهاده ماتریس A
- دستیابی به یک یا چند مقدار از یک ماتریس
- مجموع ستونهای یک ماتریس دو بعدی (و یا مجموع مقادیر یک ماتریس یک بعدی):
- بدست آوردن مقادیر روی قطر اصلی A:
- روند کردن اعداد:
- مرتب کردن هر یک از ستونهای ماتریس B بطور جداگانه:
- حذف مقادیر تکراری از یک بردار:
- توابع مقدماتی پرکاربرد:
- عملگرهای محاسباتی:
- روشی بدست آوردن باقیمانده تقسیم:
ایجاد ماتریس
A=[1,2,3 ; 4,5,6]
A=[1:10]
A=[1:2:10]
A=[10:-1:1]
A=zeros(2,3) ایجاد ماتریس 2 در3 با مقادیر صفر
A=ones(4,6) ایجاد ماتریس 4 در6 با مقادیر یک
ترانهاده ماتریس A
T=A’
دستیابی به یک یا چند مقدار از یک ماتریس
A(2,3) عنصر سطر2 ستون 3
A(:,2) عناصر ستون 2
A(1,:) عناصر سطر 1
A(3:6, 2:4) ستونهای 2 تا 4 از سطرهای 3 تا 6
دستیابی به ستون آخر یک ماتریس:
A(:,end)
مجموع ستونهای یک ماتریس دو بعدی (و یا مجموع مقادیر یک ماتریس یک بعدی):
sum(A)
sum(A’)’ مجموع سطرهای یک ماتریس دو بعدی
بدست آوردن مقادیر روی قطر اصلی A:
diag(A)
ایجاد ماتریس جادویی n×n: (ماتریس جادویی ماتریسی است که مجموع تمام سطرها و ستونها و قطرهای آن برابر است)
magic(n)
می خواهیم جای ستونهای دوم و سوم در ماتریس B را جابه¬جا کرده و نتیجه را در A ذخیره نماییم:
A=B(: , [1,3,2,4])
روند کردن اعداد:
• A=fix(B) گرد کردن به سمت صفر
• A=round(B) گرد کردن به سمت نزدیک ترین عدد صحیح(براساس رقم اعشار)
• A=ceil(B) گرد کردن به سمت مثبت بینهایت
• A=floor(B) گرد کردن به سمت منفی بینهایت
مرتب کردن هر یک از ستونهای ماتریس B بطور جداگانه:
A=sort(B)
مرتب کردن سطرهای ماتریس B ابتدا بر اساس ستون اول سپس ستون دوم و الی آخر:
A=sortrows(B)
مرتب کردن سطرهای ماتریس B فقط بر اساس ستون سوم:
A=sortrows(B,3)
حذف ستون دوم ماتریس A:
A(: , 2) = []
میانگین هر یک از ستونهای ماتریس B:
A=mean(B)
میانه هر یک از ستونهای ماتریس B:
A=median(B)
انحراف از معیار هر یک از ستونهای ماتریس B:
A=std(B)
مینیمم هر یک از ستونهای ماتریس B:
A=min(B)
ماکسیمم هر یک از ستونهای ماتریس B:
A=max(B)
یافتن اندیس عددهای غیر صفر در ماتریس B:
A=find(B)
یافتن اندیس سطر و ستون خانه مساوی 2 ماتریس B
:[i,j]=find(B==2)
یافتن اندیس سطر و ستون خانه مساوی 2 در سطر سوم از ماتریس B:
[i,j]=find(B(3,:)==2)
یافتن اندیس عددهای بین 1 تا 5 در ماتریس B:
A=find(A>1 & A6)
شیفت دادن چرخشی: دستور زیر ماتریس B را یک واحد در جهت عمودی (از بالا به پایین) و دو واحد در جهت افقی (از راست به چپ) شیفت چرخشی می¬دهد.
A=circshift(B, [1, -2])
دستور زیر ابعاد یک ماتریس را برمی¬گرداند:
size(A)
دستور زیر طول یک بردار را برمی¬گرداند: (اگر A دارای بیش از یک بعد باشد، طول طولانی¬ترین بعد برگردانده می¬شود)
length(A)
با دستور زیر می¬توان تابع f را در محیط editor مشاهده کرد و در صورت دلخواه آن را تغییر داد. با این دستور حتی می¬توان توابع خود MATLAB را نیز ویرایش نمود.
edit f
دستور زیر ماتریس B را بصورت تنک (خلوت) در A ذیره می¬کند. اگر تعداد زیادی از مقادیر یک ماتریس برابر با صفر باشد با این روش می¬توان در تخصیص حافظه صرفه¬جویی کرد.
A = sparse(B)
دستور زیر ماتریس B را از حالت تنک به حالت کامل تبدیل کرده و در A ذخیره می¬کند.
A = full(B)
توابع مخصوص رشته¬ها:
• strcat متصل کردن دو رشته
• strcmp مقایسه دو رشته
• strcmpi مقایسه دو رشته صرفنظر از بزرگ یا کوچک بودن حروف
تمام جایگشتهای ممکن مقادیر یک بردار:
perms(A)
حذف مقادیر تکراری از یک بردار:
unique(A)
نمایش هیستوگرام مقادیر یک ماتریس:
hist(A,…)
دستورات کار با تصاویر:
• I=imread(‘pic1.jpg’) خواندن تصویر
• imshow(I) نمایش تصویر
• imwrite(I, ‘pic2.gif’) ذخیره تصویر
• figure باز کردن پنجره جدید برای عکس بعدی تا عکس قبلی از بین نرود
اشتراک دو مجموعه:
intersect(A,B)
دستورات برنامه نویسی
حلقه ها
for i=start : end
دستورات
end
while(شرط)
دستورات
end
if(شرط)
دستورات
end
اجرای برنامه تا فشردن یک کلید متوقف می¬ماند:
pause
اجرای برنامه به مدت n ثانیه متوقف می¬ماند:
pause(n)
در عبارت زیر اولین گروه از دستورات اجرا می¬شوند. اگر خطایی رخ دهد اجرای این دستورات متوقف شده و دومین گروه از دستورات اجرا می¬شود.
try
statements
catch
statement
end
با دستور زیر می¬توان محیط ایجاد رابط کاربر گرافیکی را مشاهده کرد.
guide
با دستور زیر می¬توان مدت زمان اجرای هر یک از خطوط برنامه را مشاهده کرد.
profile {on, off, viewer}
نمایش پیغام: نحوه استفاده از این دستور همانند printf() در زبان C است.
fprintf(‘\n i=%d’, i)
نمایش پیغام خطا و خروج از اجرای برنامه:
error(‘your error message’)
توابع مقدماتی پرکاربرد:
• abs(A)
• exp(A)
• sin(A)
• sqrt(A)
• factorial(n)
• log2(A) لگاریتم در مبنای 2
• log10(A) لگاریتم در مبنای 10
برای مشاهده لیست توابع مقدماتی عبارت help elfun را تایپ کنید.
عملگرهای محاسباتی:
• A=B+C جمع ماتریسی
• A=B-C تفریق ماتریسی
• A=B*C ضرب ماتریسی
• A=B .* C ضرب عناصر متناظر در یکدیگر
• A=B ./ C تقسیم عناصر متناظر بر یکدیگر
• A=B .^ C به توان رساندن هر عنصر به عنصر متناظرش
اگر B یک ماتریس n×m باشد و C یک عدد اسکالر (یک ماتریس 1×1) باشد آنگاه عملگرهای فوق مقدار موجود در C را در تک تک مقادیر B اِعمال می¬کنند. بنابراین عبارت A=B+1 تک تک مقادیر B را با 1 جمع کرده و در A ذخیره می¬کند. عبارت A=B.^2 نیز تک تک مقادیر B را به توان 2 رسانده و نتیجه را در A ذخیره می¬کند.
روشی بدست آوردن باقیمانده تقسیم:
A=mod(B,C)
ایجاد یک ماتریس 3×4 از اعداد تصادفی که دارای توزیع یکنواخت بین 0 تا 1 می¬باشند:
A=rand(3,4)
ایجاد یک ماتریس 3×4 از اعداد تصادفی بین a تا b
A=floor((b-a+1)*rand(3,4)+a)
ایجاد یک ماتریس 1×n که اعداد صحیح 1 تا n به ترتیب تصادفی در آن قرار گرفته¬اند:
A=randperm(n)
ایجاد ماتریس با n×m که در هر سطر عناصر 1 تا m به طور تصادفی قرار داده شده اند
for i=1:n
A(i,:)=randperm(m);
end