این صفحه جهت آموزش MATLAB می باشد که بعضی از دستورات پر کاربرد آن را آموزش می دهد.
پنجره های مهم نرم افزار MATLAB
در شکل زیر پنجره ی اصلی نرم افزار و توضیحات آن را مشاهده می کنید:
FORMAT Set output format.
FORMAT with no inputs sets the output format to the default appropriate
for the class of the variable. For float variables, the default is
FORMAT SHORT.
FORMAT does not affect how MATLAB computations are done. Computations
on float variables, namely single or double, are done in appropriate
floating point precision, no matter how those variables are displayed.
Computations on integer variables are done natively in integer. Integer
variables are always displayed to the appropriate number of digits for
the class, for example, 3 digits to display the INT8 range -128:127.
FORMAT SHORT and LONG do not affect the display of integer variables.
FORMAT may be used to switch between different output display formats
of all float variables as follows:
FORMAT SHORT Scaled fixed point format with 5 digits.
FORMAT LONG Scaled fixed point format with 15 digits for double
and 7 digits for single.
FORMAT SHORTE Floating point format with 5 digits.
FORMAT LONGE Floating point format with 15 digits for double and
7 digits for single.
FORMAT SHORTG Best of fixed or floating point format with 5
digits.
FORMAT LONGG Best of fixed or floating point format with 15
digits for double and 7 digits for single.
FORMAT SHORTENG Engineering format that has at least 5 digits
and a power that is a multiple of three
FORMAT LONGENG Engineering format that has exactly 16 significant
digits and a power that is a multiple of three.
FORMAT may be used to switch between different output display formats
of all numeric variables as follows:
FORMAT HEX Hexadecimal format.
FORMAT + The symbols +, – and blank are printed
for positive, negative and zero elements.
Imaginary parts are ignored.
FORMAT BANK Fixed format for dollars and cents.
FORMAT RAT Approximation by ratio of small integers. Numbers
with a large numerator or large denominator are
replaced by *.
FORMAT may be used to affect the spacing in the display of all
variables as follows:
FORMAT COMPACT Suppresses extra line-feeds.
FORMAT LOOSE Puts the extra line-feeds back in.
Example:
format short, pi, single(pi)
displays both double and single pi with 5 digits as 3.1416 while
format long, pi, single(pi)
displays pi as 3.141592653589793 and single(pi) as 3.1415927.
format, intmax(‘uint64’), realmax
shows these values as 18446744073709551615 and 1.7977e+308 while
format hex, intmax(‘uint64’), realmax
shows them as ffffffffffffffff and 7fefffffffffffff respectively.
The HEX display corresponds to the internal representation of the value
and is not the same as the hexadecimal notation in the C programming
language.
در این صفحه می توان نوع نمایش عدد ? را که برابر 3.141592653589793 می باشد را به صورت زیر تعیین کرد: format short: این نوع نمایش حالت پیش فرض MATLAB است و عدد 3.14 به صورت 3.1416 نمایش داده می شود. format long: در این نوع نمایش عدد 3.14 به صورت 15 رقمی مذکور نشان داده می شود. format shorte: اعداد در این صورت به صورت نماد علمی نشان داده می شوند. یعنی عدد p به صورت 3.1416e000 نشان داده می شود که منظور از e000 ده به توان صفر است. format longe در این صورت نیز نمایش 15 رقمی است و یک exxx نیز در انتها نشان داده می شود. (نماد علمی) format hex: اعداد به صورت مبنای 16 نشان داده می شوند و در این قسمت موهومی اعداد حذف می شود. مثلا ? در این نوع نمایش به صورت 400921fb54442d18 نشان داده می شود. format +: در این نوع نمایش فقط علامت اعداد نمایش داده می شود. format rat: اعداد اعشاری را به صورت کسری نشان می دهد. در این صورت 3.14 به صورت 355/113 نمایش داده می شود. فرمت های نمایشی دیگری هم وجود دارد که به دلیل استفاده ی کم شرح داده نمی شوند. در بسیاری از مواقع اعداد اعشاری مورد نیاز نمی باشند و فقط اعداد صحیح استفاده می شوند. در این صورت بهتر است که اعداد به صورت صحیح تعریف شوند تا فضای کمتری را اشغال کنند. در نرم افزار MATLAB اعداد به صورت پیش فرض با فرمت double که برای اعداد اعشاری است و 64 بیتی می باشد (8 بایت را اشغال می کند) تعریف می شوند. در این صورت با نوشتن دستورات realmax و realmin می توان حداکثر و حداقل مقدار متغیر double را که از 30810 تا 308-10 می باشد را می توان مشاهده نمود. یعنی اگر عددی از 308 10 بزرگتر باشد، بی نهایت و از 308-10 کوچکتر باشد، صفر درنظر گرفته می شود. برای تعریف کردن اعداد به صورت صحیح می توان از دستورات int8، int16، int32، int64، uint8، uint16، uint32 و uint64 استفاده نمود. برای مشاهده ی مقادیر حداکثر و حداقل این دستورات از تابع intmax(‘intx’) و intmin(‘intx’) استفاده می شود. مثلا برای مشاهده ی مقادیر حداکثر و حداقل uint8 باید به صورت زیر عمل کنیم:>> intmax(‘uint8’)
ans =
255
>> intmin(‘uint8’)
ans =
0
>>
یعنی عدد uint8 بین صفر تا 255 می تواند مقدار داشته باشد و اگر داده ای مقدارش منفی باشد یا بیشتر از 255 باشد و در متغیری از نوع uint8 قرار بگیرد، مقدارش تغییر می کند. int8 و uint8، 8 بیتی بوده و 1 بایت حافظه را اشغال می کنند (یک هشتم double فضا را اشغال می کنند). برای تعریف یک ماتریس یا یک عدد از نوع uint8 به صورت زیر عمل می کنیم:>> a=int16(50)
a =
50
>> b=uint8([1 2 3;4 5 6;7,8,9])
b =
1 2 3
4 5 6
7 8 9
>> c=uint8(500)
c =
255
>> whos
Name Size Bytes Class Attributes
a 1×1 2 int16
b 3×3 9 uint8
c 1×1 1 uint8
>>
در مثال فوق a یک ماتریس اسکالر از نوع int16 می باشد، b یک آرایه (ماتریس) 3×3 می باشد که از نوع uint8 است (برای جداسازی درایه های ماتریس می توان هم از کلید space و هم از کاراکتر ویرگول استفاده نمود). در نهایت ماتریس c یک ماتریس اسکالر از نوع uint8 است و به دلیل اینکه محدوده ی تغییرات uint8 بین 0 تا 255 است و عدد 500 خارج این محدوده است، با قرار دادن عدد 500 در متغیری از نوع uint8 داده ها دچار اختلال می شود. در انتها با نوشتن دستور whos می توان متغیر های تعریف شده را با نوع و تعداد بایت اشغال شده ی حافظه مشاهده نمود. نکته: اعداد می توانند به صورت char، schar، uchar، bitN، ubitN، float32 و float64 نیز تعریف شوند که برای راهنمایی بیشتر در پنجره ی Command Window عبارت help را با نام این متغیر ها بنویسید. توابع نمایش در نرم افزار MATLAB دو تابع به نام های disp و fprintf وجود دارند که برای نمایش بکار می روند. این دو تابع فقط رشته ها را نمایش می دهد (منظور از رشته ها کد های اسکی می باشد). تابع disp و fprintf به صورت زیر عبارت welcome را نشان می دهند:>> disp(‘welcome’);
welcome
>> fprintf(‘welcome’);
welcome>>
>> n=’welcome’;
>> disp(n);
welcome
>> fprintf(n);
welcome>>
>> c=2;
>> disp(c);
2
>> fprintf(c)
??? Error using ==> fprintf
No format string.
>>
همانطور که در دستورات بالا مشاهده می کنید، در 4 خط بالا هر دو تابع disp و fprintf رشته ی welcome را نشان می دهند. اگر این رشته در خط پنجم در متغیر n نیز قرار بگیرد، مجددا این دو تابع رشته ی n را نمایش می دهند. اما اگر متغیری از نوع عددی تعریف شود، تابع disp آن را نمایش می دهد (خودش عدد را کد اسکی می کند) اما تابع fprintf نمی تاند این کار را انجام دهد. برای اینکه تابع fprintf نیز بتواند اعداد را نمایش دهد، از تابع num2str() استفاده می کنیم. این تابع به صورت زیر است:>> fprintf(num2str(c));
>>2
اما تابع fprintf یک ویژگی دیگر نیز دارد. در این تابع می توان از کاراکتر هایی با نام precision استفاده نمود. اگر در Command Window عبارت help fprintf نوشته شود، عبارات precision به طور کامل نمایش می یابد. مهم ترین precision ها عبارتند از: \n: مانند زدن کلید Enter عمل می کند و مکان نما به خط بعدی می رود. %d: نمایش اعداد به صور صحیح %e: نمایش اعداد به صورت نمایی %f: نمایش اعداد به صورت اعشاری %g: نمایش به صورت اعشاری یا نمایی در دستورات زیر انواع precision ها را مشاهده می کنید:>> fprintf(‘welcome\n’);
welcome
>> fprintf(‘pi is: %d’,pi);
pi is: 3.141593e+000>> fprintf(‘pi is: %e\n’,pi);
pi is: 3.141593e+000
>> fprintf(‘pi is: %g\n’,pi);
pi is: 3.14159
>> fprintf(‘pi is: %f\n’,pi);
pi is: 3.141593
>> fprintf(‘pi is: %1.8f\n’,pi);
pi is: 3.14159265
>> fprintf(‘pi is: %1.15f\n’,pi);
pi is: 3.141592653589793
>>
در دستور fprintf بجای %x که x یکی از Precision های فوق می باشد، مقدار متغیر pi قرار گرفته است. در خط یکی مانده به آخر منظور از %1.15f این است که متغیر pi را با یک رقم صحیح و 15 رقم اعشار نشان دهد. تابعی دیگری هم برای دریافت عدد از صفحه کلید می باشد که input نام دارد. این تابع در برنامه ی زیر به طور کامل نشان داده شده است:>> a=input(‘Yek Adad Vared Konid\n’);
Yek Adad Vared Konid
20
>> a
a =
20
>>
دستورات رسم نمودار در نرم افزار MATLAB تابع plot این تابع می تواند حداقل یک نمودار و حداکثر هفت نمودار را رسم نماید اگر در پنجره ی Command Window نرم افزار MATLAB عبارت help plot نوشته شود. عباراتی در این صفحه مشاهده می شود که قسمتی از این عبارات به شکل زیر می باشد:b blue . point – solid
g green o circle : dotted
r red x x-mark -. dashdot
c cyan + plus — dashed
m magenta * star (none) no line
y yellow s square
k black d diamond
w white v triangle (down)
^ triangle (up)
> triangle (left)
< triangle (right)
p pentagram
h hexagram
در عبارت فوق ستون سمت چپ نشان دهنده ی رنگ نمودار می باشد، ستون وسط نشان دهنده ی علامت گذاری نمودار می باشد و ستون سمت راست نوع نمودار را مشخص می کند موارد فوق در برنامه و شکل زیر مشهود است:x=0:0.1:360;
تعریف زاویه از صفر تا 360 درجه ی رادیانx=x.*(pi/180);
تبدیل زاویه از رادیان به درجهy1=sin(x);
y2=cos(x);
محاسبه ی Sin و Cos متغیر xplot(x,y1,’r-‘,x,y2,’g-->’);
رسم تابع (sin(xبا رنگ قرمز و پیوسته و رسم تابع (cos(x با رنگ سبز و خط چین همراه با علامت گذار >xlabel(‘\theta’);
نمایش حرف تتا یونانی برای محور xylabel(‘f1(\theta),f2(\theta)’);
نام گذاری محور ytitle(‘sin(\theta),cos(\theta)’);
نام گذاری عنوان نمودارlegend(‘sin(\theta)’,’cos(\theta)’);
نمایش Legend (نشان داده شده در شکل فوق)grid on;
روشن کردن خطوط شطرنجی نمودارaxis([2 10 -2 2])
دستور axis normal محور ها را به حالت عادی بر می گرداند. دستور axis equal محور ها را به صورت هم اندازه نمایش می دهد. دستور axis square محور ها را به صورت مربع در می آورد. دستور axis off کلی ی برچسب ها را مخفی می کند. توابع semilogx، semilogy و loglog دقیقا مانند تابع plot عمل می کنند تا این تفاوت که به ترتیب، محور x، محور y و هر دو محور را به صورت لگاریتمی رسم می کنند. نکته: تابع plot3 نیز مانند تابع plot می باشد اما نمودار را به صورت سه بعدی رسم می کند. توابع bar، barh و bar3 این توابع برای رسم نمودار مستطیلی بکار می روند. تابع bar نمودار مستطیلی معمولی رسم می کند (مانند شکل 1) تابع barh نمودار مستطیلی افقی رسم می کند (مانند شکل 2) تابع bar3 نمودار مستطیلی سه بعدی رسم می کند (مانند شکل 3) به عنوان مثال برنامه ی زیر را در نظر بگیرید. این برنامه به صورت همزمان با یک سری از اعداد، سه نمودار مذکور را رسم می نماید.x=1:10;
تعریف x از 1 تا 10figure(1),bar(x);
رسم نمودار bar در شکل اولfigure(2),barh(x);
رسم نمودار barh در شکل دومfigure(3),bar3(x);
رسم نمودار bar3 در شکل سومشکل 1
شکل 2
شکل 3
تابع area این تابع سطح زیر نمودار را پر می کند. به عنوان مثال برنامه ی زیر را در نظر بگیرید.x=1:0.1:360;
x=x.*(pi/180);
y=sin(x);
area(y);
این تابع خروجی زیر را تولید می کند.x=1:10;
pie(x);
این برنامه خروجی زیر را تولید می کند.x=1:10;
pie(x,{‘1′,’BWM’,’Ford’,’jaguar’,’Neysan’,’Folex’,…
‘Peykan’,’Perayd’,’9′,’Porsche’});
در این صورت خروجی برنامه به صورت زیر تغییر می کند:x=1:10;
z=[0 0 0 0 0 0 1 0 0 0];
pie(x,z,{‘1′,’BWM’,’Ford’,’jaguar’,’Neysan’,’Folex’,…
‘Peykan’,’Perayd’,’9′,’Porsche’});
x=1:10;
stem(x);
x=1:0.5:10;
stairs(x);
xlabel(‘step’);
ylabel(‘x’);
x=1:4:360;
x=x.*(pi/180);
y=sin(x);
feather(y);
خروجی زیر تولید شده است.x=1:0.1:360;
x=x.*(pi/180);
y=sin(x);
hist(y,50);
x=1:10;
spy(x);
از مطالب آموزشیتون ممنونم.
یه راهنمایی میخواستم در مورد نوشتن اعداد بصورت حروف فارسی.ممنون میشم اگه جواب بدید.
منظورتون روشن نیست
در GUI؟
در ضمن نظرات جای مناسبی برای پاسخ به سوالات نیست
سلام
ممنون مفید بود
perfect
سلام.ممنون از مطالب خوبتون.دنبال موضوعی بودم
که بعد از جستجو در سایت های مختلف اینجا پیدا کردم.با تشکر و ارزوی موفقیت دبیر فیزیک از ارومیه