تبلیغات
آموزش مطلب - مطالب تیر 1384

UIContextMenu

نویسنده :امین باشی
تاریخ:یکشنبه 26 تیر 1384-11:07 ق.ظ

p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi: embed'>UIContextMenu

با استفاده از این ویژگی می‌توان توسط راست كلیك پنجره را بهتر كنترل كرد.

مثال)

از منوی file گزینه new وM-file را انتخاب كنید.

با استفاده از M-file  می توان دستورات مطلب را در قابل یك برنامه نوشت. M-file ها به دو دسته‌ی

M-file scripts  و M-file functions تقسیم می شوند.

M-file هایی كه كلمه‌ی function در ابتدای آنها باشد از نوع M-file functions می باشند كه تفاوت های یسیاری با نوع دیگر دارند.

در M-file باز شده دستورات زیر را بنوسید.

function ex1

hfigure = figure;

cmenu = uicontextmenu;

item1 = uimenu(cmenu, 'Label', 'sin', 'Callback',@f1 );

item2 = uimenu(cmenu, 'Label', 'log', 'Callback',@f2 );

item3 = uimenu(cmenu, 'Label', 'tan', 'Callback',@f3 );

set(hfigure,'UIContextMenu', cmenu)

function f1(obj,eventdata)

ezplot('sin')

grid on

function f2(obj,eventdata)

ezplot('log')

grid on

function f3(obj,eventdata)

ezplot('tan')

grid on

در سطر اول M-file را از نوع M-file functions تعریف كردیم.

در سطر سوم متغیر cmenu را به عنوان دستگیره‌ی تابع uicontextmenu قرار دادیم.

تابع uimenu باری ایجاد منو بكار می‌رود.

توابع uicontextmenu و uimenu  را در مباحث آینده بطور كامل توضیح می دهم.

سطر های 4و5و6 یك منو از نوع راست كلیك (uicontextmenu) با سه گزینه تولید می كند.

سطر 7 مقدار ویژگی UIContextMenu ، از پنجره‌‌ی hfigure را تعین می كند.

كه در این مثال یك منو با سه گزینه می باشد.

در سطرهای 4و5و6 در جلوی عبارت Callback مقدار @f* قرار داده شده است.

ویژگی Callback مشخص كننده ی تابع یا اسكریپت فراخوانی شده توسط uimenu در صورت انتخواب كردن هر گزینه می باشد.

قرار دادن علامت @ یعنی تابع f* تابع داخلی تابع ex1 است.

 

پس ازذخیره‌ كردن این فایل كه همنام با اسم تابع اصلی (ex1) است و اجرای آن یك پنجره باز شده كه در ابتدا به رنگ خاكستری است. با راست كلیك كردن بر روی آن می توانید نمودار سه تابع sin,log,cos را رسم كنید.

 

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

علت آن این است كه هنگام رسم نمودار یك axes (محور مختصات)  رسم شده كه عمل كشیدن در آن انجام می شود.axes در حقیقت یكی از زیر مجموعه های (Children) تابع figure است.

برای اینكه بتوان بر روی نمودار(فضای مشخص شده توسط محورهای مختصات)از راست كلیك استفاده كرد

باید منو را برایش تعریف كرد.

مثال)

function ex1

global hfigure

hfigure = figure;

cmenu = uicontextmenu;

item1 = uimenu(cmenu, 'Label', 'sin', 'Callback',@f1 );

item2 = uimenu(cmenu, 'Label', 'log', 'Callback',@f2 );

item3 = uimenu(cmenu, 'Label', 'tan', 'Callback',@f3 );

set(hfigure,'UIContextMenu', cmenu)

function f1(obj,eventdata)

clf

global hfigure

haxes=axes;

cmenu = uicontextmenu;

item1 = uimenu(cmenu, 'Label', 'sin', 'Callback',@f1 );

item2 = uimenu(cmenu, 'Label', 'log', 'Callback',@f2 );

item3 = uimenu(cmenu, 'Label', 'tan', 'Callback',@f3 );

set(gca,'UIContextMenu', cmenu)

set(hfigure,'UIContextMenu', cmenu)

ezplot('sin')

function f2(obj,eventdata)

clf

global hfigure

haxes=axes;

cla reset

cmenu = uicontextmenu;

item1 = uimenu(cmenu, 'Label', 'sin', 'Callback',@f1 );

item2 = uimenu(cmenu, 'Label', 'log', 'Callback',@f2 );

item3 = uimenu(cmenu, 'Label', 'tan', 'Callback',@f3 );

set(gca,'UIContextMenu', cmenu)

set(hfigure,'UIContextMenu', cmenu)

ezplot('log')

function f3(obj,eventdata)

clf

global hfigure

haxes=axes;

cmenu = uicontextmenu;

item1 = uimenu(cmenu, 'Label', 'sin', 'Callback',@f1 );

item2 = uimenu(cmenu, 'Label', 'log', 'Callback',@f2 );

item3 = uimenu(cmenu, 'Label', 'tan', 'Callback',@f3 );

set(gca,'UIContextMenu', cmenu)

set(hfigure,'UIContextMenu', cmenu)

ezplot('tan')

 

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

حل این مشكل به عهده ی خود شماست.

نا یادم نرفته بگم كه تا می نوانید از global  استفاده نكنید.چون برنامه رو زشت می كند.

ترجیحا متغیرهای لازم را به عنوان آرگومان به درون توابع بفرستید.



نوع مطلب : figure 

figure

نویسنده :امین باشی
تاریخ:چهارشنبه 15 تیر 1384-03:07 ق.ظ

ساده تریتن نوع استفاده از این دستور نوشتن figure در خط فرمان است که یک پنجره با مقادی پیش فرض
ایجاد می کند.
منظور از مقادیر پیش فرض، اندازه، مکان و دیگر ویژهگی های پنچره می باشد.
حال کافی است با استفاده از دستوری مثل plot نمودار دلخواه را بر روی پنجره بکشیم.
مثال 1)
 figure
 plot([1 3])
وقتی یک ماتریس به عنوان آرگمان تابع plot استفاده می شود.ستونهای ماتریس را بر حسب اندیس آنرسم می کند.
در مورد بردارها تفاوتی بین سطری یا ستونی بودن آن نیست.
با کمی دقت در بالای پنجره مثال قبل سمت چپ می توانید عبارت figure 1 را ببنید.
(ممکن است به جای 1 عددی دیگری باشد).عدد 1 نشان دهنده دستگیره(handel)نامیده می شود.
در هنگام ایجاد پنجره مطلب یه آن یک عدد اختصاص می دهد.با استفاده از دستگیره می توان
در میان انبوهی از پنجره ها با پنجره مورد نظر کارکرد.
h=figure
با استفاده از این نوع دستور مقدار دستگیره به متغیر h اختصاص پیدا می کند.
مثال 2)
h1=figure;
h2=figure;
figure(h1)
plot([1 2],[3 4])
figure(h2)
plot([1 2;3 4])
figure(n) کهnیک عدد صحیح باعث می شود که
الف) اگر پنچره ای با شمارهn وجود داشته باشد عنوان پنجره فعال روی پنجره های دیگر قرار قرار بگیرد
  ب)  پنجره ای با این شماره ایجاد شود.


نوع مطلب : figure 

مقدمه

نویسنده :امین باشی
تاریخ:چهارشنبه 15 تیر 1384-03:07 ق.ظ

مطلب رو چه قدر می شناسید؟

مطلب یكی از قدرتمند ترین نرم‌افزارها‌ی مهند‌سی است.كه بیشتر به عنوان بك ماشین حساب قدرتمند مشهور است.یاد گرفتن مطلب برای مهندسان از نان شب نیز واجب تر است.

اما مطلب قابلیت‌های فراوانی دارد؛ مثل پردازش تصویر، شبیه سازی و......

شما میتونید كتاب‌های زیادی در مورد مطلب به زبان فارسی پیدا كنید؛ اما بیشتر این كتابها تك بعدی هستند.

همه‌ی اونها در مورد  محاسابات  توسط مطلب نوشته شده اند.

یكی از قشنگ ترین قابلیت های مطلب Matlab Graphics است .

Matlab Graphics توانا&#ی&#ی نما&#یش دادن نتا&#یج، نمودارها،پنجره ها&#ی محاوره ا&#ی و .... است كه به كمك آن

می توان برنامه‌های كاربردی را خواناتر نمود. به كمك این توانایی می توانید برنامه هایی با ظاهری زیباتر و

كابردوست تر تولید كنید.

 

وبلاگها&#ی تخصص&#ی فارس&#ی هر روزگسترش ب&#یشتر پ&#یدا م&#ی کنند. اما اکثرآنها بعد از مدت&#ی به دور باطل م&#ی افتند.

من به خاطر علاقه‌ای كه به نوشتن دارم و احساس دین نسبت به زبان شیرین فارسی، وظیفه خودم می دونم كه

در جهت ارتقا زبان فارسی-تحت وب- هر كاری كه می‌توانم انجام دهم.

در ا&#ین بلاگ قصد من آموزش مطلب است و ام&#یدوارم که دلزده و خسته نشوم. 



نوع مطلب : خودم 





All right reserved©2005 Amin Bashi