اسکریپت نویسی در متلب سادهترین نوع برنامهنویسی است. اسکریپت یک فایل با پسوند .m است که حاوی خطوط ترتیبی چندگانه از فراخوانیهای توابع و دستورات در متلب است. میتوانید اسکریپت را با تایپ کردن نام آن در خط فرمان اجرا کنید.
یک نمونه اسکریپت نویسی در متلب
برای ایجاد یک اسکریپت، از دستور edit استفاده کنید.
edit plotrand
این دستور، یک فایل خالی با نام plotrand.m باز میکند. کدی را وارد کنید که بردار یک داده تصادفی را ترسیم میکند:
n = 50;
r = rand(n,1);
plot(r)
سپس، کدی را اضافه کنید که یک خط افقی را در پلات در سطح میانی قرار دهد:
m = mean(r);
hold on
plot([0,n],[m,m])
hold off
title(‘Mean of Random Uniform Data’)
هر زمان که کدی مینویسید، بهتر است کامنتهایی برای توصیف کد اضافه کنید. این کامنتها به دیگران این اجازه را میدهد که متوجه کد شما شوند، و زمانی که دوباره به سراغ آن میآید، راحتتر کد را به خاطر بیاورید. با استفاده از علامت درصد (%) کامنتها را اضافه کنید.
% Generate random data from a uniform distribution
% and calculate the mean. Plot the data and the mean.
n = 50; % 50 data points
r = rand(n,1);
plot(r)
% Draw a line from (0,m) to (n,m)
m = mean(r);
hold on
plot([0,n],[m,m])
hold off
title(‘Mean of Random Uniform Data’)
فایل را در پوشه فعلی ذخیره کنید. برای اجرای اسکریپت، نام آن را در خط فرمان تایپ کنید:
plotrand
همچنین میتوانید اسکریپتها را از ویرایشگر با فشار دادن دکمه Run، اجرا کنید.
حلقهها و عبارات شرطی
در یک اسکریپت، میتوانید بر روی بخشهای کد، حلقه ایجاد کنید و بهصورت شرطی بخشها را با استفاده از کلمات کلیدی for
, while
, if
و switch اجرا کنید.
برای مثال، یک اسکریپت به اسم calcmean.m ایجاد کنید که از لوپ for برای محاسبه میانگین پنج نمونه تصادفی و میانگین کل استفاده میکند.
nsamples = 5;
npoints = 50;
for k = 1:nsamples
currentData = rand(npoints,1);
sampleMean(k) = mean(currentData);
end
overallMean = mean(sampleMean)
حالا، لوپ for را تغییر دهید تا بتوانید نتایج را در هر تکرار مشاهده کنید. متن را در پنجره فرمان که شامل تعداد تکرار فعلی است نشان دهید و نقطهویرگول را از sampleMean حذف کنید.
for k = 1:nsamples
iterationString = [‘Iteration #’,int2str(k)];
disp(iterationString)
currentData = rand(npoints,1);
sampleMean(k) = mean(currentData)
end
overallMean = mean(sampleMean)
وقتی این اسکریپت را اجرا میکنید، نتایج میانی را نمایش میدهد، و سپس میانگین کلی را محاسبه میکند.
calcmean
Iteration #1
sampleMean =
0.3988
Iteration #2
sampleMean =
0.3988 0.4950
Iteration #3
sampleMean =
0.3988 0.4950 0.5365
Iteration #4
sampleMean =
0.3988 0.4950 0.5365 0.4870
Iteration #5
sampleMean =
0.3988 0.4950 0.5365 0.4870 0.5501
overallMean =
0.4935
در ویرایشگر، عبارات شرطی را به انتهای calcmean.m اضافه کنید که پیام متفاوتی را بسته به مقدار overallMean نشان میدهد.
if overallMean < .49
disp(‘Mean is less than expected’)
elseif overallMean > .51
disp(‘Mean is greater than expected’)
else
disp(‘Mean is within the expected range’)
end
calcmean را اجرا کنید و مطمئن شوید که پیام صحیح برای overallMean محاسبهشده نمایش داده میشود. مثلاً:
overallMean =
0.5178
Mean is greater than expected
مکانهای اسکریپت
نرمافزار متلب به دنبال اسکریپتها و فایلهای دیگر در مکانهای خاص است. برای اجرای یک اسکریپت، فایل باید در پوشه جاری یا در یک پوشه در search path باشد.
بهطور پیشفرض، پوشه MATLAB که خود متلب ایجاد میکند در مسیر جستجو است. اگر میخواهید برنامهها را در پوشه دیگری ذخیره و اجرا کنید، آن را به مسیر جستجو اضافه کنید. پوشه را از مرورگر Current Folder انتخاب کنید، راست کلیک کنید، و سپس Add to Path را انتخاب کنید.
پرسش و پاسخ درباره برنامهنویسی و اسکریپتنویسی در متلب (قسمت ششم)
1. برنامهنویسی در متلب چیست و چه کاربردهایی دارد؟
برنامهنویسی در متلب به معنای نوشتن کدهایی است که متلب (MATLAB) برای انجام محاسبات عددی، تحلیل دادهها، شبیهسازیها، و تولید گرافها استفاده میکند. متلب یک زبان برنامهنویسی سطح بالا است که مخصوص محاسبات ریاضی و مهندسی طراحی شده است و در زمینههای مختلفی از جمله پردازش سیگنال، پردازش تصویر، تحلیل داده، و شبیهسازی سیستمها کاربرد دارد.
2. اسکریپتنویسی در متلب چیست؟
اسکریپتنویسی در متلب به نوشتن کدهایی اطلاق میشود که به صورت خطی و بدون ورودی و خروجی تابع اجرا میشوند. اسکریپتها معمولاً مجموعهای از دستورات متلب هستند که در یک فایل متنی با پسوند .m
ذخیره میشوند و به صورت پیوسته اجرا میشوند. اسکریپتها برای انجام محاسبات و تحلیلهای سریع استفاده میشوند.
3. تفاوت بین اسکریپت و تابع در متلب چیست؟
- اسکریپت: کدی است که به صورت خطی اجرا میشود و معمولاً ورودی یا خروجی ندارد. اسکریپتها بیشتر برای انجام تحلیلهای ساده یا فرآیندهای تکراری استفاده میشوند.
- تابع: یک مجموعه از دستورها است که میتواند ورودی و خروجی داشته باشد و میتواند برای انجام محاسبات پیچیدهتر و انعطافپذیرتر استفاده شود. توابع در متلب معمولاً با پسوند
.m
ذخیره میشوند و میتوانند در اسکریپتها و برنامههای دیگر فراخوانی شوند.
4. چگونه میتوان یک اسکریپت در متلب نوشت؟
برای نوشتن یک اسکریپت در متلب، کافی است یک فایل جدید با پسوند .m
باز کنید و کدهای خود را وارد کنید. پس از نوشتن کد، میتوانید با استفاده از دکمه “Run” یا تایپ نام اسکریپت در Command Window، آن را اجرا کنید. یک اسکریپت معمولی ممکن است به این شکل باشد:
a = 5;
b = 10;
c = a + b;
disp(c)
5. چگونه میتوان تابعی در متلب نوشت؟
برای نوشتن یک تابع در متلب، باید یک فایل جدید با پسوند .m
بسازید و ابتدا کلمه function
را بنویسید. سپس نام تابع، ورودیها و خروجیهای آن را تعریف کنید. به عنوان مثال:
function result = addNumbers(a, b)
result = a + b;
end
در اینجا، addNumbers
نام تابع است و a
و b
ورودیهای آن هستند که جمع آنها در خروجی result
ذخیره میشود.
6. چطور میتوان پارامترهای ورودی و خروجی را در تابع متلب تعریف کرد؟
در متلب، پارامترهای ورودی و خروجی را میتوان در داخل بدنه تابع مشخص کرد. ورودیها معمولاً در داخل پرانتز پس از نام تابع تعریف میشوند و خروجیها در سمت چپ علامت =
قرار میگیرند. مثال:
function [sum, product] = mathOperations(a, b)
sum = a + b;
product = a * b;
end
در اینجا، تابع mathOperations
دو ورودی (a
و b
) و دو خروجی (sum
و product
) دارد.
7. چگونه میتوان یک اسکریپت را به صورت خودکار در متلب اجرا کرد؟
برای اجرای خودکار یک اسکریپت در متلب، میتوانید آن را از طریق یک فایل Batch یا Task Scheduler (در ویندوز) برنامهریزی کنید. همچنین، در محیط متلب میتوانید از دستور timer
برای زمانبندی اجرای یک اسکریپت استفاده کنید. به عنوان مثال:
t = timer('ExecutionMode', 'fixedRate', 'Period', 5, 'TimerFcn', @myFunction);
start(t);
این کد اسکریپتی را هر 5 ثانیه یکبار اجرا میکند.
8. چطور میتوان متغیرها را در متلب تعریف و مقداردهی کرد؟
برای تعریف و مقداردهی به متغیرها در متلب، کافی است نام متغیر را وارد کنید و به آن یک مقدار اختصاص دهید. متلب به طور خودکار نوع داده متغیر را تشخیص میدهد. مثال:
x = 10; % یک متغیر عددی
y = 'hello'; % یک متغیر متنی
z = [1, 2, 3, 4]; % یک آرایه
9. آیا میتوان از دستور if
و for
در اسکریپتها و توابع متلب استفاده کرد؟
بله، متلب از دستورات شرطی if
و حلقههای تکرار for
به طور گسترده پشتیبانی میکند. برای مثال، از دستور if
برای تصمیمگیری و از for
برای اجرای تکراری استفاده میشود:
x = 5;
if x > 0
disp('عدد مثبت است');
else
disp('عدد منفی یا صفر است');
end
for i = 1:5
disp(i)
end
این کد ابتدا بررسی میکند که آیا x
مثبت است یا نه و سپس مقادیر 1 تا 5 را چاپ میکند.
10. چه منابعی برای یادگیری بیشتر برنامهنویسی و اسکریپتنویسی در متلب وجود دارد؟
برای یادگیری بیشتر برنامهنویسی و اسکریپتنویسی در متلب، منابع متعددی وجود دارد:
- مستندات رسمی متلب: سایت MathWorks شامل مستندات کامل و مثالهای مفید است.
- کتابهای آموزشی: کتابهایی مانند “MATLAB for Engineers” یا “MATLAB: A Practical Introduction to Programming” میتوانند منابع خوبی باشند.
- دورههای آنلاین: وبسایتهایی مانند Coursera، edX و Udemy دورههای آموزشی متلب را برای سطوح مختلف ارائه میدهند.
- فرومهای آنلاین: انجمنها و فرومهای تخصصی مانند Stack Overflow و MathWorks Forum میتوانند به حل مشکلات و پرسشهای شما کمک کنند.