بستن منو
۳۹۱
تعداد کلیدهای این موضوع
لیست همه کلیدهای این موضوع
مباحث اولیه برای آشنایی با متلب
مباحث اولیه برای آشنایی با متلب
7
بردارها و ماتریس ها در متلب
بردارها و ماتریس ها در متلب
55
دستورهای ساده و پرکاربرد در متلب
دستورهای ساده و پرکاربرد در متلب
4
توابع در متلب
توابع در متلب
11
متغیرها و تبدیل متغیرها در متلب
متغیرها و تبدیل متغیرها در متلب
11
m-file ها در متلب
m-file ها در متلب
2
نمایش اطلاعات در خروجی متلب (پنجره commands)
نمایش اطلاعات در خروجی متلب (پنجره commands)
5
رسم شکل ها، در متلب (MATLAB)
رسم شکل های دو بعدی در متلب
رسم شکل های دو بعدی در متلب
18
رسم شکل های سه بعدی در متلب
رسم شکل های سه بعدی در متلب
13
رسم چند شکل با هم، در متلب
رسم چند شکل با هم، در متلب
6
رسم شکل ها و نمودارهای خاص، در متلب
رسم شکل ها و نمودارهای خاص، در متلب
11
رسم شکل های هندسی ساده، در متلب
رسم شکل های هندسی ساده، در متلب
8
تعیین ویژگی های خط های رسم شده در شکل، در متلب
تعیین ویژگی های خط های رسم شده در شکل، در متلب
6
تعیین ویژگی های محورهای مختصات شکل، در متلب
تعیین ویژگی های محورهای مختصات شکل، در متلب
11
نمایش متن در شکل (عنوان، توضیح و ...)، در متلب
نمایش متن در شکل (عنوان، توضیح و ...)، در متلب
5
تعیین یا تغییر ویژگی های شکل (قبل از رسم شکل)، در متلب
تعیین یا تغییر ویژگی های شکل (قبل از رسم شکل)، در متلب
13
تعیین یا تغییر ویژگی های شکل (بعد از رسم شکل)، در متلب
تعیین یا تغییر ویژگی های شکل (بعد از رسم شکل)، در متلب
9
پردازش تصویر و کار با عکس ها، در متلب
پردازش تصویر و کار با عکس ها، در متلب
15
ساخت انیمیشن در متلب
ساخت انیمیشن در متلب
1
عملیات های ریاضی در متلب
عملیات های ریاضی در متلب
67
متغیرها و معادلات سمبلیک در متلب
متغیرها و معادلات سمبلیک در متلب
4
رشته ها (متن ها - strings) در متلب
رشته ها (متن ها - strings) در متلب
22
حلقه ها (for و while)، در متلب
حلقه ها (for و while)، در متلب
3
آرایه ها (Array)، در متلب
آرایه ها (Array)، در متلب
3
آرایه های سلولی (Cell Array)، در متلب
آرایه های سلولی (Cell Array)، در متلب
6
ساختارها (Structure)، در متلب
ساختارها (Structure)، در متلب
1
آرایه های ساختاری (Structure Array)، در متلب
آرایه های ساختاری (Structure Array)، در متلب
2
دستورات شرطی (if و else و switch و ...)، در متلب
دستورات شرطی (if و else و switch و ...)، در متلب
2
خطاهای رایج در متلب
خطاهای رایج در متلب
2
برنامه نویسی شیء گرا (object oriented programming) در متلب
برنامه نویسی شیء گرا (object oriented programming) در متلب
1
سیمولینک (Simulink) در متلب
سیمولینک (Simulink) در متلب
5
GUI و واسطه های گرافیکی، در متلب
GUI و واسطه های گرافیکی، در متلب
7
کار با فایل ها و پوشه ها، در متلب
کار با فایل ها و پوشه ها، در متلب
16
تاریخ و زمان، در متلب
تاریخ و زمان، در متلب
6
توقف موقتی یا کامل برنامه، در متلب
توقف موقتی یا کامل برنامه، در متلب
4
بردارها و ماتریس های خاص، در متلب
بردارها و ماتریس های خاص، در متلب
3
توابع خاص، در متلب
توابع خاص، در متلب
1
حافظه (Memory)، در متلب
حافظه (Memory)، در متلب
3
برنامه های متلب آماده برای دانلود
برنامه های متلب آماده برای دانلود
1
Excel و متلب
Excel و متلب
2
مباحث عمومی در متلب
مباحث عمومی در متلب
19
×

دانلود فروشگاه اندروید کلیدستان

15

نویسنده

علیرضا گلمکانی ( admin )

شماره کلید
دسته کلید - دسته بندی

ساخت تابع در متلب با استفاده از m-file

در متلب با استفاده از دستور inline نیز می توان تابع ساخت، اما ساخت تابع با استفاده از m-file انتخابی حرفه ای تر می باشد. معمولا برنامه نویسان حرفه ای، چارچوب برنامه را در یک فایل اصلی می نویسند و بخش های مختلف برنامه را به صورت تابع هایی می نویسند که یک یا چند ورودی را دریافت کرده و محاسبات لازم را انجام می دهند و سپس یک یا چند خروجی را بر می گردانند. برنامه نویس، عملکرد هر تابع را جداگانه چک می کند و سپس زمانی که از بابت آنها خیالش راحت شد، تمرکز اصلی خود را بر روی فایل اصلی که حاوی چارچوب برنامه می باشد، می گذارد و تنها در فایل اصلی، ارجاعاتی به توابع ساخته شده خواهد داد.

چنانچه شما هم از این شیوه استفاده کنید، پس از مدتی صاحب بانکی از توابع خواهید شد که در نوشتن برنامه های جدید، بسیار به شما کمک می کند.

با مثالی ساده، نحوه ساخت یک تابع با استفاده از m-file را شرح می دهیم :

مثال

می خواهیم تابعی به نام add بسازیم که در ورودی، دو عدد را دریافت کرده و سپس مجموع آن دو عدد را در خروجی برگرداند. ابتدا یک m-file خالی باز می کنیم و کد زیر را در آن می نویسیم :


function [z] = add(x,y)
z=x+y;

در کد متلب بالا، کلمه function اعلام می کند که این m-file به صورت یک تابع می باشد. خروجی با نام z و دو ورودی با نام های x و y مشخص شده اند. کلمه ای که بعد از علامت تساوی قرار می گیرد (در اینجا کلمه add)، نام تابع را مشخص می کند و باید در مرحله بعد، m-file را دقیقا با همین نام ذخیره کنیم. بنابراین m-file را با نام add ذخیره می کنیم.

همان طور که مشاهده کردید، خط اول، ساختار تابع را مشخص می کند و در خط های بعدی، تنها کاری که باید انجام دهیم، این است که روابط بین ورودی ها و خروجی را تعریف کنیم که در این مثال، تنها یک جمع ساده می باشد.

پس از ذخیره کردن m-file ، دیگر کاری با آن نداریم. باید دقت کنید که اگر بخواهید این m-file را با گزینه Save and run در بالای پنجره، اجرا کنید، با یک خطا مواجه می شوید، زیرا این m-file یک تابع است و باید ورودی هایی برای آن تعریف کنیم.

اکنون باید تابع ساخته شده را تست کنیم. دستور زیر را در پنجره Command می نویسیم (و یا در یک m-file دیگر) :


B=2;
C=3;
A=add(B,C)

نتیجه :


A =
 
     5
نکته

باید m-file تابع درون Current folder و یا سایر مسیرهای مشخص شده برای نرم افزار متلب باشد. در غیر این صورت، متلب یک پیام خطا را نمایش می دهد. این پیام خطا، به این دلیل است که متلب نمی تواند m-file با نام add را پیدا کند.

نکته

در دستور فوق مشاهده کردیم که نام هایی که برای ورودی و خروجی تابع add استفاده کردیم (A و B و C)، با نام های درون خود کدهای تابع add ، متفاوت است (x و y و z). بنابراین احتیاجی نیست که نگران نام های به کار رفته در ساختار تابع باشید و از هر نام دلخواهی برای ارجاع به تابع می توانید استفاده کنید.

کپی برداری از محتوای سایت کلیدستان، ممنوع بوده و پیگرد قانونی دارد. (تنها استفاده شخصی کاربر، مجاز است) (کپی برداری توسط سایر وب سایت ها = حرام) (بیشتر بدانید)

خوانده شد
مبحث بالا، مفید بود و سایت کلیدستان را دوست داشتم :
محبوب کردن این مبحث در گوگل :
اون چیزی که میخواستم نبود :
سوال دارم :
ارسال نظر :
نظرات 22 22 0
mjm
۱۳۹۵/۰۶/۰۷
۰۷:۱۰

سلام دوستان
واقعا از شما تشکر می کنم از سایت عالیتون.
چون دوستتون دارم و با سایتتون حال می کنم می خواستم یه پیشنهاد کوچولو بدم،
رنگ بندی سایتتون می تونه خیلی بهتر از این باشه 
و همچنین فرم و نحوه قرار گیری اشیا به زیبایی سایت خیلی کمک می کنه.
بازم ممنون 
ان شاءالله خدا خیرتون بده و موفق باشید
یا علی

رضا
۱۳۹۵/۰۶/۱۹
۰۲:۵۰

سلام
واقعا سایت خوب، کاربردی و "کار راه بنداز" راه انداختین    Smile
واقعا ممنون 
امیدوارم همیشه موفق و سربلند و هم چنان "کار راه بنداز" باشین   Smile

سهراب
۱۳۹۵/۰۶/۲۷
۰۱:۳۴

خیلی ممنون بابت این آموزش مفید

ali
۱۳۹۵/۰۷/۰۵
۱۳:۴۸

عالی هستین عزیزان

مازیار
۱۳۹۵/۰۸/۰۸
۱۳:۳۶

سلام
تشکر
عالی بود و کارم راه افتاد
فقط یه پیشنهاد داشتم و اونم اینکه ظاهر سایتتون خیلی کودکانه هستش. شاید اگه یکم بهش برسین و از چند گرافیست و طراح استفاده کنین خیلی خوب باشه.
باز هم تشکر

navid
۱۳۹۵/۰۸/۲۳
۱۱:۴۵

واقعا از سایت خوبتون ممنونم

نوشین
۱۳۹۵/۰۹/۰۹
۰۴:۰۸

سایتتون عالیه.ممنون ام.

شیما
۱۳۹۵/۱۲/۰۵
۱۱:۲۱

سلام
لطفا اگه میشه منو راهنمایی کنید. من میخوام 10 تا نقطه را به صورت تصادفی داخل یه مربع 5*5 قرار بدم و مختصات x و y اونهارو به دست بیارم حالا چجوری باید براش تابع بنویسم و اجراش کنم؟؟

admin
۱۳۹۵/۱۲/۰۵
۱۱:۴۰

سلام.
لطفا سوالات را در مبحث های با موضوع مشابه و یا در انجمن سایت مطرح نمایید.
مختصات x مربع را از 0 تا 5 در نظر می گیریم و مختصات y مربع را نیز از 0 تا در 5 در نظر می گیریم.
اکنون با استفاده از دستور rand (کلید شماره 21) که برای تولید اعداد تصادفی در متلب (MATLAB) به کار می رود، در یک حلقه for (کلید شماره 30)، مختصات x و y هر نقطه را به صورت یک عدد تصادفی بین 0 تا 5 تولید می کنیم و نقطه را بر اساس دو مختصات x و y آن رسم می کنیم (البته اگر ترسیم شکل مد نظرتان بوده).
در واقع، حلقه دارای 10 گام خواهد بود که در هر گام، یک نقطه تصادفی جدید می سازیم. 
برای نمایش یک یا چند نقطه در شکل، کلید شماره 151 را بخوانید.

Flower

شیما
۱۳۹۵/۱۲/۰۵
۱۲:۲۹

خیلی خیلی ممنون

neg-eng
۱۳۹۵/۱۲/۰۵
۱۳:۱۲

ممنونم ولی من میخوام با استفاده از ساخت تابع این کار را انجام بدم نه حلقه ی for ؟؟؟؟

admin
۱۳۹۵/۱۲/۰۵
۱۳:۴۴

سلام.
برای ساخت تابع، همین مبحث را بخوانید.

Flower

infinity90
۱۳۹۶/۰۳/۰۵
۱۷:۴۰

 سلام.
از سایت خوبتون بسیار ممنون. کارمو خیلی راه انداخت واسه همین بر خودم لازم دیدم که ازتون تشکر کنم.

محمدی
۱۳۹۶/۰۳/۲۱
۲۰:۱۴

سلام ممنون میشم کمکم کنید تا این برنامه رو بتونم ران کنم
همش بهم خطا میده لاین 1 و لاین 7
من تازه کارم و این مثالو یکی از استادام نوشته ولی توی متلب نمیتونم رانش کنم
برام خیلی مهمه میشه کمکم کنید.
ممنون

کد پی‌اچ‌پی:
function [c,b,s] = eqn1(x,t,u,DuDx)
%
EQN1MATLAB function M-file that specifies
%a PDE in time and one space dimension.
1;
DuDx;
s=0;
function [
pl,ql,pr,qr] = bc1(xlulxr ,ur,t)
%
BC1MATLAB function M-file that specifies boundary conditions
%for a PDE in time and one space dimension.
pl ul;
ql 0;
pr ur-1;
qr=0;
function 
value initial1(x)
%
INITIAL1MATLAB function M-file that specifies the initial condition
%for a PDE in time and one space dimension.
value 2*x/(1+x^2);
%
PDE1MATLAB script M-file that solves and plots
%solutions to the PDE stored in eqn1.m
0;
NOTEm=0 specifies no symmetry in the problemTaking
m=1 specifies cylindrical symmetry, while m=2 specifies
spherical symmetry.
%
Define the solution mesh
linspace(0,1,20);
linspace(0,2,10);
%
Solve the PDE
pdepe(m,@eqn1,@initial1,@bc1,x,t);
%
Plot solution
surf
(x,t,u);
title('Surface plot of solution');
xlabel('Distance x');

ylabel('Time t');
figure 
plot
(x,u(1,:),'erase','xor')
for 
k=2:length(t)
set(fig,'xdata',x,'ydata',u(k,:))
pause(.5)
end 

ایران
۱۳۹۶/۰۳/۳۰
۱۰:۴۳

سلام ممنون
ساده و قابل فهم توضیح دادین، خدا خیرتون بده

حسن
۱۳۹۶/۰۴/۰۴
۱۹:۵۸

سلام و درود بر شما، سایتتان عالیه واقعا براتون آرزوی موفقیت و سلامتی دارم. با سپاس

sima
۱۳۹۶/۰۵/۰۷
۱۰:۵۰

با عرض سلام 
من یک function را در متلب مینویسم ولی با ارور  require more input arguments to run  مواجه میشوم. ممنون میشم کمکم کنید.


کد پی‌اچ‌پی:
function [z]=myfun(x)

a=[100,50,80];
b=[0.1 0.4 0.1];
c=[10 10 25];
d=[0.6 0.8 0.4];

z(x)=sum(a.*(1-exp(-b.*x))-(c.*x.^d));


end 

admin
۱۳۹۶/۰۵/۰۸
۱۰:۳۱

سلام.
باید این کدها را در یک فایل با نام myfun.m ذخیره کنید (که البته در یکی از مسیرهای تعریف شده برای متلب (MATLAB) قرار گرفته باشد).
سپس در یک فایل دیگر، کد زیر را اجرا کنید :

کد پی‌اچ‌پی:
myfun(1

که نتیجه آن به صورت زیر می باشد :

کد پی‌اچ‌پی:
ans =

 
 -11.3867 

اگر مشکل برطرف نشد، ممکن است قبلا تابعی با نام myfun تعریف شده باشد، بنابراین نام جدیدی را برای تابع انتخاب کنید که امکان تکراری بودن آن، کم باشد.

Flower

sh
۱۳۹۶/۰۶/۰۴
۱۳:۴۶

عالی ممنون

زهرا
۱۳۹۶/۰۹/۱۵
۱۳:۰۴

عالی

r
۱۳۹۷/۰۲/۱۹
۰۴:۰۸

سلام. ممنون از سایت خوبتون
چند وقتی هست از اطلاعات این  سایت استفاده میکنم و همیشه به کمکم اومده ، امیدوارم همیشه اینطور باشه

محمد
۱۳۹۷/۰۳/۱۳
۱۵:۱۸

سلام
با تشکر سایت خیلی خوبتون.
چجوری میشه از function بیشتر از دو تا خروجی مختلف (برای مثال یک اسکالر و دو ماتریس با اندازه مختلف) گرفت؟

*** نظر بدهید

دسترسی سریع

×

شماره کلید


کلید
×

شماره دسته کلید


دسته کلید
×

جستجو


جستجو

راهنمای دستورات متلب (MATLAB)

راهنمای دستورات متلب (MATLAB) بر اساس حرف اول دستور :

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

بستن منو
۷۹
تعداد کلیدهای این موضوع
لیست همه کلیدهای این موضوع
دسترسی سریع به دسته کلیدها :

Introduction to Programming with MATLAB Image Processing Using MATLAB
مجموعه ویدئوهای آموزشی مقدمه ای بر برنامه نویسی متلب (MATLAB) - مجموعه Introduction to Programming with MATLAB
مجموعه ویدئوهای آموزشی مقدمه ای بر برنامه نویسی متلب (MATLAB) - مجموعه Introduction to Programming with MATLAB
42
مجموعه ویدئوهای آموزشی پردازش تصویر در متلب (MATLAB) - مجموعه Image Processing Using MATLAB
مجموعه ویدئوهای آموزشی پردازش تصویر در متلب (MATLAB) - مجموعه Image Processing Using MATLAB
37
بستن منو
۳۳
تعداد کلیدهای این موضوع
لیست همه کلیدهای این موضوع
انواع رسم شکل در متلب
انواع رسم شکل در متلب
24
ساخت انیمیشن در متلب
ساخت انیمیشن در متلب
3
GUI در متلب
GUI در متلب
6

آخرین ارسال های انجمن (در زمینه برنامه نویسی متلب)

آخرین ارسال های انجمن (در زمینه برنامه نویسی متلب)
موضوع تاریخ و زمان نویسنده آخرین ارسال تعداد پاسخ انجمن
برنامه محاسبه مقدار ویژه و بردار ویژه در متلب
امروز, ۱۰:۲۲ ق.ظ
amir_hossein
amir_hossein
0 سوال و جواب در مورد نرم افزار متلب (MATLAB)
پیدا کردن حروف تکراری در یک سری لغت از یک فایل اکسل در متلب
امروز, ۰۳:۵۶ ق.ظ
Shahinnt
Shahinnt
0 سوال و جواب در مورد نرم افزار متلب (MATLAB)
سوال در مورد ارور (خطای The current directory ... is reserved for MATLAB files)
امروز, ۱۲:۲۸ ق.ظ
mjy
amir_hossein
3 سوال و جواب در مورد نرم افزار متلب (MATLAB)
وارد کردن معادله
۱۳۹۷/۰۵/۲۳, ۰۱:۳۶ ب.ظ
sedaghat
sedaghat
0 سوال و جواب در مورد نرم افزار متلب (MATLAB)
مشکل atan2 (در متلب - MATLAB)
۱۳۹۷/۰۵/۱۶, ۱۱:۵۸ ب.ظ
hosein2662
hosein2662
5 سوال و جواب در مورد نرم افزار متلب (MATLAB)
هتل پیانو فورت استانبول
۱۳۹۷/۰۵/۱۶, ۰۱:۵۸ ب.ظ
istanbool118
istanbool118
0 نرم افزار متلب (MATLAB)
سوال
۱۳۹۷/۰۵/۱۶, ۱۰:۲۴ ق.ظ
mohammadsarkhosh
حسین8
2 سوال و جواب در مورد نرم افزار متلب (MATLAB)
فعال سازی نرم افزار متلب
۱۳۹۷/۰۵/۱۴, ۰۶:۱۵ ب.ظ
mnabiloo
mnabiloo
0 سوال و جواب در مورد نرم افزار متلب (MATLAB)
کاهش دادن زمان اجرای برنامه در متلب
۱۳۹۷/۰۵/۱۱, ۱۱:۳۲ ق.ظ
MMM
MMM
0 سوال و جواب در مورد نرم افزار متلب (MATLAB)
scope سیمولینک
۱۳۹۷/۰۵/۱۰, ۰۵:۴۸ ب.ظ
lila90
lila90
0 سوال و جواب در مورد نرم افزار متلب (MATLAB)
رسم مکعب مربع در متلب
۱۳۹۷/۰۵/۰۶, ۰۸:۰۵ ب.ظ
samaneh.a
m-r-v
1 سوال و جواب در مورد نرم افزار متلب (MATLAB)
کاهش بعد از فضای دو بعدی به فضای یک بعدی
۱۳۹۷/۰۵/۰۵, ۰۷:۳۲ ب.ظ
mohamadamn
mohamadamn
0 سوال و جواب در مورد نرم افزار متلب (MATLAB)
علت خطای Out of memory چیست؟ (در متلب - MATLAB)
۱۳۹۷/۰۵/۰۵, ۱۱:۱۸ ق.ظ
MMM
admin
1 سوال و جواب در مورد نرم افزار متلب (MATLAB)
حل معادله در متلب
۱۳۹۷/۰۵/۰۲, ۰۳:۱۷ ب.ظ
Samaa
Samaa
0 سوال و جواب در مورد نرم افزار متلب (MATLAB)
دستور dlmwrite
۱۳۹۷/۰۵/۰۱, ۱۰:۱۷ ق.ظ
aliazizi583
aliazizi583
0 سوال و جواب در مورد نرم افزار متلب (MATLAB)
حل معادله پیچیده
۱۳۹۷/۰۴/۱۸, ۱۱:۳۷ ب.ظ
sahar3000
sahar3000
0 حل معادلات در متلب (MATLAB)
یافتن مینیمم
۱۳۹۷/۰۴/۱۸, ۰۶:۳۳ ب.ظ
rohi
rohi
0 سوال و جواب در مورد نرم افزار متلب (MATLAB)
طبقه بندی اشیا
۱۳۹۷/۰۴/۱۸, ۱۱:۴۰ ق.ظ
farzanehraf
farzanehraf
0 سوال و جواب در مورد نرم افزار متلب (MATLAB)
تعیین علامت دو تابع
۱۳۹۷/۰۴/۱۰, ۰۹:۳۲ ب.ظ
elahe44
elahe44
0 سوال و جواب در مورد نرم افزار متلب (MATLAB)
مجاسبه فاصله بین دو نقطه در تصاویر
۱۳۹۷/۰۴/۱۰, ۰۸:۰۳ ب.ظ
javad_vali95
javad_vali95
0 پردازش تصویر در متلب (MATLAB)
تولید اعداد تصادفی همبسته در متلب
۱۳۹۷/۰۴/۰۹, ۱۲:۴۰ ب.ظ
MMM
MMM
0 سوال و جواب در مورد نرم افزار متلب (MATLAB)
یافتن یک مجهول با توجه به یک معادله ماتریسی
۱۳۹۷/۰۴/۰۶, ۱۰:۳۶ ق.ظ
MMM
MMM
0 سوال و جواب در مورد نرم افزار متلب (MATLAB)
حل مسائل کنترل خطی در متلب
۱۳۹۷/۰۴/۰۵, ۰۸:۳۴ ب.ظ
masouddastres
masouddastres
0 سوال و جواب در مورد نرم افزار متلب (MATLAB)
فاصله دو نقطه از هم (متلب - MATLAB)
۱۳۹۷/۰۴/۰۳, ۰۴:۰۱ ب.ظ
Y019
admin
1 سوال و جواب در مورد نرم افزار متلب (MATLAB)
حل معادله دیفرانسیل با مشتقات جزئی
۱۳۹۷/۰۴/۰۳, ۰۴:۱۰ ق.ظ
[email protected]
sir_hadi
1 سوال و جواب در مورد نرم افزار متلب (MATLAB)
مشاهده 1000 ارسال آخر انجمن (در زمینه برنامه نویسی متلب)