مطلب (Matlab) – با توجه به اينكه در زبانهاي لاتين حرف ط وجود ندارد متلب صحيح است – نام يكي از محصولات شركت مث‌وركس (Mathworks) است كه براي استفاده مهندسين ساخته شده است.تفاوت اصلي اين نرم‌افزار با ديگر نرم‌هاي به ظاهر مشابه مانند مي‌پل (Maple) در كاربرد مهندسي آن است.مي‌پل يك نرم افزار خاص انجام محاسبات رياضي است در حاليكه مطلب علاوه بر توانايي انجام محاسبات رياضي، ابزارهاي خاصي براي انواع رشته‌هاي مهندسي را دارا مي‌باشد مانند جعبه‌ابزار بيواينفورماتيك (Bioinformatic) كه براي آناليز و برسي ژنها استفاده مي‌شود.

واژه مطلب از تركيب دو واژه MATrix و LABoratory ايجاد شده است؛ اين نام حاكي از رويكرد ماتريس محور برنامه است بطوريكه در آن اعداد هم به صورت ماتريس ذخيره مي‌شوند.

برنامه‌هاي نوشته شده توسط متلب، متن باز(Open source) هستند. درسايت شركت مث‌وركس به آدرس

http://www.mathworks.com/matlabcentral/fileexchange/

مي توانيد برنامه هاي نوشته شده توسط ديگر كاربرانمتلب را پيدا كنيد و يا برنامه‌هاي خود را به اشتراك بگذاريد.

آنچه كه براي استفاده از متلب بايد بدانيد

در اين بخش دستورات مفدماتي و مطالب لازم براي يادگيري متلب به‌طور كامل مرور مي كنيم.

اسكريپت (Script) و تابع (function)

فايل اسكريپت، فايلي حاوي دستورات متلب است كه پس از اجراي فايل به ترتيب اجرا مي شوند.براي اجراي فايل كافي است نام آن را در خط فرمان متلب بنويسيم.پسوند اين فايل‌ها ‌m است و به همين علت ام- فايل (M-file) ناميده مي‌شنود.

براي ساختن يك اسكريپت از منوي file گزينه new و بعد از آن M-file را انتخاب كنيد.

براي نوشتن يك تابع مانند نوشتن يك اسكريپت عمل مي‌كنيم.

از منوي file گزينه new و …..

با اين تفاوت كه در ابتداي فايل بايد واژه كليدي function  را بنويسيم

(متلب واژه‌هاي كليدي را با رنگ ابي مشخص مي‌كند)

تفاوت اصلي يك اسكريپت با تابع در اين است كه تابع مي‌توانيد متغيرهايي را به عنوان ورودي قبول كند و متغيرهايي را به عنوان خروجي برگرداند، تعريف تابع در متلب مانند تعريف توابع در رياضيات است.

y = f(x)

منظور از x ورودي تابع، y خروجي و f نام تابع است. در حالت كلي تابع f مي‌تواند n ورودي و m خروجي داشته باشد كه n و m اعداد صحيح مي‌باشند.

هر تابع در محيط متلب فضاي كار مخصوص به خود را دارد، يعني متغيرهاي داخلي(محلي) هر تابع فقط براي خود تابع قابل دسترسي است.

تابع زير دو عدد را از ورودي گرفته و بزرگترين آنها را بر مي‌گرداند.

function y = testfunc(x1,x2)

y=max(x1,x2);

براي ذخيره كردن تابع بر خلاف اسكريپت نمي‌توانيم هر نام دلخواهي را استفاده كنيم و بايد نام فايل با نام تابع يكي باشد.پسوند فايل حاوي تابع مانند فايل اسكريپت m است.

براي اجراي تابع بايد نام آن را در خط فرمان بنويسيم و فراموش نه كنيم كه همه ورودي‌ها (آرگومان‌ها) را نيز قرار دهيم.مانند مثال زير

testfunc(1,2)

هر ام-فايل مي‌تواند شامل بيشتر از يك تابع باشد، به اولين تابع، تابع اصلي و به تابع‌هاي ديگر زير تابع (subfunction) گفته مي‌شود.

زيرتابع‌ها فقط براي تابع اصلي قابل دسترسي هستند.هر زيرتابعي با استفاده از واژه كليدي function شروع مي‌شود و تعريف يك زير تابع مانند تعريف تابع اصلي است.

مثال قبل را به اين صورت تغيير مي‌دهيم

function [y1,y2] = testfunc(x1,x2)

y1 = max(x1,x2);

y2 = subfunc(m);

function n = subfunc(m)

n = mod(m,10);

زير تابع اضافه شده باقي‌مانده تقسيم m بر 10 را حساب مي‌كند.

[k,l] = testfunc(121,123)

متغيرها در متلب

متغير قسمتي از حافظه است كه در آن اعداد، حروف و … ذخيره مي‌شوند.متغيرها در محيط متلب به سه نوع : محلي، سراسري و ماندگار تقسيم مي شنود.

متغيرهاي محلي Local

در محيط متلب هر تابعي متغيرهايمحلي مخصوص به خود را دارد كه اين متغيرها براي ديگر توابع قابل دسترسي نيستند. اين متغيرها پس از خاتمه يافتن كار تابع از حافظه پاك مي‌شنود.

مثال قبل را به اين صورت تغيير مي‌دهيم

function [y1,y2] = testfunc(x1,x2)

y1 = max(x1,x2);

y2 = subfunc(y1);

function y1 = subfunc(m)

y1 = mod(m,10);

همانطور كه مي‌بينيد متغيير y1 هم در تابع اصلي و هم در زير تابع بكار رفته است، اما به علت آنكه هر تابع متغيرهاي محلي خود را دارد مشكلي در كار تابع به وجود نمي‌آيد.

متغيرهاي سراسري Global

اين متغيرها با واژه كليدي global تعريف مي‌شوند. باز هم مثال فبل را در نظر بگيريد و آن را به اين صورت تغيير دهيد:

function [y1,y2] = testfunc(x1,x2)

global y2

y1 = max(x1,x2);

subfunc(y1);

function subfunc(m)

global y2

y2 = mod(m,10);

همانطور كه مي‌بينيد متغيير y2 را از نوع سراسري تعريف كرده‌ايم. اين متغيير در تمام توابعي كه در آنها تعريف شده است قابل دسترسي است.

در مثال بالا تابع subfunc فقط ورودي دارد و هيچ مقداري را به عنوان خروجي بر نمي‌گرداند.

متغيرهاي ماندگار Persistent

اين متغيرها پس از خاتمه يافتن كار تابع از حافظه پاك نمي‌شوند.

مثال زير نحوه استفاده از اين متغيرها را نشان مي‌دهد. در اين مثال تعداد دفعات اجرا شدن تابع را، توسط متغير ماندگار حساب مي‌كنيم.

fnction [y,m]=testpersistent(x)

persistent n

if isempty(n)

 n = 0;

end

n = n+1;

m = n;

y= x^2;

تعريف اين نوع متغيرها بايد قبل از هرگونه استفاده از آنها باشد، يعني در مثال فوق ما مجاز نبوديم تابع را به شكل زير بنويسيم

function [y,n]=testpersistent(x)

persistent n

if isempty(n)

 n = 0;

end

n = n+1;

y= x^2;

پس از تعريف يك متغير ماندگار، متلب مقدار [] ( تهي ) را به آن اختصاص مي‌دهد.دستور شرطي مثال قبل تهي بودن متغير n را امتحان مي‌كند و در صورت تهي بودن n را برابر 0 قرار مي‌دهد.

حالا دستور clear all را در خط فرمان بنويسيد و پس از آن مثال قبل را دوباره اجرا كنيد.