تاريخ : پنجشنبه پانزدهم تیر ۱۳۹۱
برای آن که بتوانیم توابع مورد نظر خود را در متلب تعریف کنیم ، به شیوه های مختلفی می توانیم عمل کنیم که یکی از آنها استفاده از دستور inline می باشد . به مثال زیر توجه کنید :

مثال :

فرض کنید بخواهیم تابع f را به صورت یک چند جمله ای از x تعریف کنیم . می نویسیم :

f=inline('x^2+2*x+1','x')

نتیجه :

f =
 
     Inline function:
     f(x) = x^2+2*x+1

درون پرانتز دستور inline ، عبارت اول برابر چندجمله ای و عبارت دوم ، متغیر را مشخص می کند . در دستور فوق می توانیم عبارت 'x' را که متغیر را مشخص می کند ، حذف کنیم زیرا دستور inline می تواند آن را حدس بزند . به مثال زیر توجه کنید :

مثال :

فرض کنید بخواهیم تابع f را به صورت یک چند جمله ای از x تعریف کنیم . می نویسیم :

f=inline('x^2+2*x+1')

نتیجه :

f =
 
     Inline function:
     f(x) = x^2+2*x+1

حال در مثال زیر نشان می دهیم که چگونه تابع تعریف شده مقدار متغیر x را دریافت کرده و نتیجه را در خروجی نمایش می دهد :

مثال :

f=inline('x^2+2*x+1')
f(2)

نتیجه :

f =
 
     Inline function:
     f(x) = x^2+2*x+1
 
 
ans =
 
     9

تابع تعریف شده قبلی تنها قادر است که در ورودی ، یک مقدار را برای متغیر x دریافت کرده و سپس نتیجه را نمایش دهد . فرض کنید که بخواهیم تابع در ورودی ، یک بردار را دریافت کرده و سپس مقدار تابع را برای هر عنصر آن بردار محاسبه کند ، برای این منظور باید در عبارتی که برای تعریف تابع به کار می بریم از vectorize استفاده کنیم . به مثال زیر توجه کنید :

مثال :

f=inline(vectorize('x^2+2*x+1'),'x')
A=1:5
f(A)

نتیجه :

f =
 
     Inline function:
     f(x) = x.^2+2.*x+1
 
 
A =
 
     1     2     3     4     5
 
 
ans =
 
     4     9    16    25    36

تعریف توابع شامل دو متغیر در متلب با دستور inline :

برای تعریف توابع دو متغیره ، درون پرانتز دستور inline ابتدا باید عبارت تابع را نوشته و سپس نماد دو متغیر را به ترتیب مشخص کنیم . به مثال زیر توجه کنید :

مثال :

f=inline('x^2+2*y')
f(1,2)

نتیجه :

f =
 
     Inline function:
     f(x,y) = x^2+2*y
 
 
ans =
 
     5

برچسب‌ها: دستورهای ابتدایی, m, file, Matlab Function

ارسال توسط بهرامی
ارسال توسط بهرامی
 
تاريخ : پنجشنبه هشتم تیر ۱۳۹۱

اكثر اشیایی كه در ساختار گرافیكی مطلب دیده می‌شوند ، ویژگیهای مشتركی دارند.امروز به دو ویژگی دیگر از آنها میپردازم.

 

این كدها را در در یك m-file  به اسم plot1 ذخیره كنید.

 x=1:100;

y=x.^2;

hold on

for i=1:99

    plot([x(i) x(i+1)],[y (i) y(i+1)])

    drawnow

end

و كدهای زیر را به اسم plot2

x=1:100;

y=-(x.^2);

hold on

for i=1:99

    plot([x(i) x(i+1)],[y(i) y(i+1)])

    drawnow

end

در خط فرمان دستور زیر را بنویسید.

figure ('WindowButtonUpFcn','plot2','WindowButtonDownFcn','plot1')

بر روی پنجره باز شده كلیك كرده و تكمه موس را پایین نگه دارید ، بعد از چند لحظه تكمه موس را رها كنید.

می‌بینید كه رسم نمودار اول متوقف شده و نمودار دروم رسم می‌شود.

با دستور get مقدار دو ویژگی یاد شده را مشاهده كنید.

get (gcf,'bus')

get (gcf,'inter')

نكته : در هنگام كار كردن با ویژگیها لازم نیست نام كامل آنها را بنویسید، فقط تا آنجایی كه با بقیه ویژگیها قاطی نشود لازم است كه بنویسید.

مقدار bus برابر با queue(صف) یعنی رخداد(event) دوم بعد از رخداد اول انجام می‌شود.مقدار inter برابر با on یعنی رخداد دوم می‌تواند جلوی رخداد اول را بگیرد.

figure ('WindowButtonUpFcn','plot2','WindowButtonDownFcn','plot1','Interru ptible','off')

دوباره تكمه موس را پایین نگه داشته و بعد رها كنید.می‌بینید كه رخداد اول یطور كامل انجام شده و بعد رخداد دوم انجام می‌شود.

این دفعه یك پنجره ایجاد كرده و مقدار bus را برابر با cancel و مقدار inter را off می‌كنیم.

figure ('WindowButtonUpFcn','plot2','WindowButtonDownFcn','plot1')

set (gcf,'inter','off')

set (gcf,'bus','cancel')

بعد از رها كردن موس هیچ اتفاقی نمی‌افتد.


برچسب‌ها: متلب, MATLAB, m, file

ارسال توسط بهرامی

اسلایدر

دانلود فیلم