آموزش متلب (MATLAB)
دسته بندی ( ۵۴۳ آموزش )
نمایش دسته بندی ها (۵۴۳ آموزش)
مباحث اولیه، در متلب (MATLAB)
مباحث اولیه، در متلب (MATLAB) 8
بردارها (Vector) و ماتریس ها (Matrix)، در متلب (MATLAB)
بردارها (Vector) و ماتریس ها (Matrix)، در متلب (MATLAB) 75
دستورهای ساده و پرکاربرد، در متلب (MATLAB)
دستورهای ساده و پرکاربرد، در متلب (MATLAB) 4
توابع (Function)، در متلب (MATLAB)
توابع (Function)، در متلب (MATLAB) 12
متغیرها (Variable)، در متلب (MATLAB)
متغیرها (Variable)، در متلب (MATLAB) 12
m-file ها، در متلب (MATLAB)
m-file ها، در متلب (MATLAB) 2
نمایش اطلاعات در خروجی (پنجره Commands)، در متلب (MATLAB)
نمایش اطلاعات در خروجی (پنجره Commands)، در متلب (MATLAB) 5
رسم شکل ها، در متلب (MATLAB)
رسم شکل های دو بعدی، در متلب (MATLAB)
رسم شکل های دو بعدی، در متلب (MATLAB) 19
رسم شکل های سه بعدی، در متلب (MATLAB)
رسم شکل های سه بعدی، در متلب (MATLAB) 13
رسم چند شکل با هم، در متلب (MATLAB)
رسم چند شکل با هم، در متلب (MATLAB) 6
رسم شکل ها و نمودارهای خاص، در متلب (MATLAB)
رسم شکل ها و نمودارهای خاص، در متلب (MATLAB) 12
رسم شکل های هندسی ساده، در متلب (MATLAB)
رسم شکل های هندسی ساده، در متلب (MATLAB) 8
تعیین ویژگی های خط های رسم شده در شکل، در متلب (MATLAB)
تعیین ویژگی های خط های رسم شده در شکل، در متلب (MATLAB) 6
تعیین ویژگی های محورهای مختصات شکل، در متلب (MATLAB)
تعیین ویژگی های محورهای مختصات شکل، در متلب (MATLAB) 12
نمایش متن در شکل (عنوان، توضیح و ...)، در متلب (MATLAB)
نمایش متن در شکل (عنوان، توضیح و ...)، در متلب (MATLAB) 5
تعیین ویژگی های رنگ های (Color) به کار رفته در رسم شکل، در متلب (MATLAB)
تعیین ویژگی های رنگ های (Color) به کار رفته در رسم شکل، در متلب (MATLAB) 3
تعیین یا تغییر ویژگی های شکل (قبل از رسم شکل)، در متلب (MATLAB)
تعیین یا تغییر ویژگی های شکل (قبل از رسم شکل)، در متلب (MATLAB) 13
تعیین یا تغییر ویژگی های شکل (بعد از رسم شکل)، در متلب (MATLAB)
تعیین یا تغییر ویژگی های شکل (بعد از رسم شکل)، در متلب (MATLAB) 9
ذخیره شکل ها به صورت فایل (فایل عکس)، در متلب (MATLAB)
ذخیره شکل ها به صورت فایل (فایل عکس)، در متلب (MATLAB) 2
کار با شکل رسم شده، در متلب (MATLAB)
کار با شکل رسم شده، در متلب (MATLAB) 1
پردازش تصویر و کار با عکس ها، در متلب (MATLAB)
پردازش تصویر و کار با عکس ها، در متلب (MATLAB) 15
ساخت انیمیشن، در متلب (MATLAB)
ساخت انیمیشن، در متلب (MATLAB) 1
متغیرها و معادلات سمبلیک (Symbolic)، در متلب (MATLAB)
متغیرها و معادلات سمبلیک (Symbolic)، در متلب (MATLAB) 4
رشته ها (String) و آرایه های رشته ای (String Array) و کاراکترها (Character) و آرایه های کاراکتری (Character Array) (متن ها)، در متلب (MATLAB)
رشته ها (String) و آرایه های رشته ای (String Array) و کاراکترها (Character) و آرایه های کاراکتری (Character Array) (متن ها)، در متلب (MATLAB) 42
حلقه ها (for و while)، در متلب (MATLAB)
حلقه ها (for و while)، در متلب (MATLAB) 3
آرایه ها (Array)، در متلب (MATLAB)
آرایه ها (Array)، در متلب (MATLAB) 4
آرایه های سلولی (Cell Array)، در متلب (MATLAB)
آرایه های سلولی (Cell Array)، در متلب (MATLAB) 12
متغیرهای منطقی (Logical) و آرایه های منطقی (Logical Array)، در متلب (MATLAB)
متغیرهای منطقی (Logical) و آرایه های منطقی (Logical Array)، در متلب (MATLAB) 2
ساختارها (Structure) و آرایه های ساختاری (Structure Array)، در متلب (MATLAB)
ساختارها (Structure) و آرایه های ساختاری (Structure Array)، در متلب (MATLAB) 3
جدول ها (Table)، در متلب (MATLAB)
جدول ها (Table)، در متلب (MATLAB) 11
جدول های زمانی (TimeTable)، در متلب (MATLAB)
جدول های زمانی (TimeTable)، در متلب (MATLAB) 1
درخت ها (Tree)، در متلب (MATLAB)
درخت ها (Tree)، در متلب (MATLAB) 1
پایگاه داده SQLite ، در متلب (MATLAB)
پایگاه داده SQLite ، در متلب (MATLAB) 0
دستورات شرطی (if و else و switch و ...)، در متلب (MATLAB)
دستورات شرطی (if و else و switch و ...)، در متلب (MATLAB) 2
خطاهای رایج، در متلب (MATLAB)
خطاهای رایج، در متلب (MATLAB) 2
برنامه نویسی شیء گرا (Object Oriented Programming) ، در متلب (MATLAB)
برنامه نویسی شیء گرا (Object Oriented Programming) ، در متلب (MATLAB) 1
سیمولینک (Simulink)، در متلب (MATLAB)
سیمولینک (Simulink)، در متلب (MATLAB) 5
GUI و واسطه های گرافیکی، در متلب (MATLAB)
GUI و واسطه های گرافیکی، در متلب (MATLAB) 7
فایل ها (File) و پوشه ها (Folder)، در متلب (MATLAB)
فایل ها (File) و پوشه ها (Folder)، در متلب (MATLAB) 18
تاریخ و زمان، در متلب (MATLAB)
تاریخ و زمان، در متلب (MATLAB) 19
توقف موقتی یا کامل برنامه، در متلب (MATLAB)
توقف موقتی یا کامل برنامه، در متلب (MATLAB) 4
بردارها و ماتریس های خاص، در متلب (MATLAB)
بردارها و ماتریس های خاص، در متلب (MATLAB) 3
توابع خاص، در متلب (MATLAB)
توابع خاص، در متلب (MATLAB) 2
حافظه (Memory)، در متلب (MATLAB)
حافظه (Memory)، در متلب (MATLAB) 3
برنامه های آماده برای دانلود، در متلب (MATLAB)
برنامه های آماده برای دانلود، در متلب (MATLAB) 1
Excel و متلب (MATLAB)
Excel و متلب (MATLAB) 2
راهنما (Help)، در متلب (MATLAB)
راهنما (Help)، در متلب (MATLAB) 2
مباحث عمومی، در متلب (MATLAB)
مباحث عمومی، در متلب (MATLAB) 19

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

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

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

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

مثال

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

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

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

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

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

نتیجه :

نکته

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

نکته

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

نویسنده علیرضا گلمکانی
شماره کلید 15
گزینه ها
به اشتراک گذاری (Share) در شبکه های اجتماعی
نظرات 35 34 1
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 بیشتر از دو تا خروجی مختلف (برای مثال یک اسکالر و دو ماتریس با اندازه مختلف) گرفت؟

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

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

   1        1
      1        2   
     1        3  

   2        1
   2        2
   2        3

3        1
3        2
3        3

4        1
4        2
4        3

مریم
۱۳۹۷/۰۷/۲۷
۰۰:۴۷

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

456
۱۳۹۷/۰۷/۲۷
۱۵:۴۹

آقا سلام
ببخشید من خودم و کشتم ولی نمیتونم این مشکل به ظاهر ساده رو حل کنم
یه تابع تعریف کردیم این شکلیه :


function [W,b]= trainheb(S,t)
W=0;
b=0;
for i=1:1:25
    W(i)=W(i)+(S(i).*t(i));
    b=b+t(i);
    disp(W(i))
    disp(b)
end
end


حالا این خطا رو میده :

Error using trainheb (line 5)
Not enough input arguments.

حالا چ کنم ؟؟؟؟!!!! ورودی ها که همینه دیگه Huh Undecided Confused

ali
۱۳۹۷/۰۸/۰۸
۲۱:۳۱

سلام من یه برنامه با ramp , ustepمیخام بنویسم و برنامه فانکشن رو هم مینویسم و سیو میکنم ولی باز نمیتونم برنامه اصلی رو اجرا کنم راهنمایی کنید

یه ایرانی
۱۳۹۷/۰۸/۲۴
۱۰:۰۷

فانکشن رو نوشتم!
اما حالا چه طوری ذخیره اش کنم؟
می خوام جای دیگه استفاده کنم، پیغام Undefined میده!!

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

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

Flower

مهدی
۱۳۹۸/۰۲/۱۸
۱۶:۵۶

سلام من میخوام یه سیگنال مثلا سینوسی رو تو متلب بنویستم و بعد با چند تا شرط زیر اونو محدود کنم.ولی متلب اررو میده و y رو مقداردهی نمیکنه.
if k<0
y=0
end
if k>=0 &K<=1
y=k
end
if k>1
y=1
end

مهدی
۱۳۹۹/۰۲/۱۰
۱۴:۲۴

سلام خسته نباشید
ببخشید یک سوال داشتم،کاربرد توابع  tofloat ,  paddedsize  در فیلترینگ تصویر در حوزه فرکانس چیست؟
با تشکر از شما

امیرعلی
۱۳۹۹/۰۵/۲۰
۱۲:۰۸

سلام دوستان
ممنون از سایت مفیدتون
من یک تابع دو متغیره تعریف کردم که وقتی بهش یکی یکی مقدار میدم درست کار میکنه اما توی رسم کردنش مشکل دارم یعنی وقتی بهش چندین نقطه میدم (با دستور linspace) ارور میده
فکر کنم ارورش به این خاطر هست که به جای x و y تابع دارم بردار میذارم و x و y در واقع باید عدد باشند 
کسی میتونه کمک کنه چجوری این ارور را رفع کنم؟
خیلی ممنون

Z
۱۴۰۰/۰۲/۱۶
۱۹:۴۹

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

هادی
۱۴۰۰/۰۵/۲۳
۱۳:۲۵

سلام و عرض ادب
ضمن تشکر از سایت خوبتون
یک تابع را بصورت m فایل تعریف کردیم .میخواستم ببینم چطور میشه که در خود تابع یک متغییر سیمبولیک تعریف کرد چون بعضی مواقع نیاز هست مقدار تابع بصورت پارامتریک محاسبه شود.از دستور syms در تابع استفاده کرد اما جواب نداد.ممنون از راهنمایی شما

Z
۱۴۰۰/۰۹/۱۲
۱۵:۲۲

سلام میشه در مورد این کد کمکم کنید
تابعی بنویسید که دو ماتریس دوعددصحیح به عنوان ورودی دریافت کند فرض کنید ماتریس‌های ورودیa,bباشندتابع درایه سطرmوستونnدوماتریس راچک میکند اگر باهم برابربوندعددیک واگرنبودند عددصفر را برمیگرداند

ارسال نظر جدید (بدون نیاز به عضو بودن در وب سایت)

جستجو در کلیدستان، توسط گوگل

جستجو در عنوان کلیدها

دسترسی سریع

کلید
×

شماره کلید


دسته بندی
×

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


جستجو
×

جستجو


راهنمای دستورات متلب (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