تبلیغات آموزش مطلب
وبلاگ من
نویسنـــدگان :
امین باشی (73)
موضــــوع ها :
figure (14)
line (1)
uicontrol (1)
uipanel (1)
axes (2)
Organization of Graphics Objects (2)
uimenu (2)
خودم (7)
image (2)
surface (1)
patch (1)
text (5)
light (1)
plot object (2)
area (3)
bar (2)
convolution (1)
errorbar (2)
plot (1)
surf (1)
برازش منحنی (1)
workspace (1)
evalin (1)
GUIDE (1)
dsolve (1)
لاپلاس (1)
سری فوریه (3)
حل عددی IVP (2)
حل معادلات دیفرانسیل پاره ای وابسته به زمان در یک بعد (1)
BVP (1)
حل معادلات خطی (1)
solve (1)
حل pde (5)
subs (1)
آرشیـــو :
خرداد 1388 (1)
مرداد 1386 (1)
بهمن 1385 (2)
دی 1385 (2)
آذر 1385 (1)
شهریور 1385 (6)
مرداد 1385 (6)
تیر 1385 (5)
خرداد 1385 (1)
اردیبهشت 1385 (3)
فروردین 1385 (9)
اسفند 1384 (9)
شهریور 1384 (14)
مرداد 1384 (10)
تیر 1384 (3)
لینكدونی :
MATLAB Wiki
History of Iran
لورن
آرشیو لینكدونی
لینكستان :
متمتیکا
مهندسی صنایع - مهندس امیر
مهندسی شیمی ایران
اخبار نجوم
دانلود رایگان کتاب فیزیک به زبان فارسی
وبلاگ فیزیک ایران
مجله نجوم
انجمن علمی پژوهشی نجم شمال
ماه نو
مطلب نوین
آموزش متلب
میكرو روباتیك
معماری بی نظیر
انجمن مهندسی شیمی ایران
تکنولوژی برتر
گلچین دنیای اینترنت
پروژه های جالب الكترونیك
جادوهای ویندوز
Mathworks
وب كلاس
جنون اینترنت
فرهنگستان زبان و ادب پارسی
جسنجو :
خبرنامه :
نظر سنجی :
امروز :
بازدید های امروز :
بازدید های دیروز :
كل مطالب :
كل نظرها :
كل بازدید ها :
ایجاد صفحه : - ثانیه
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
مقدمه
مطلب رو
چه قدر می شناسید؟
مطلب یكی
از قدرتمند ترین نرمافزارهای مهندسی است.كه بیشتر به عنوان بك ماشین حساب
قدرتمند مشهور است.یاد گرفتن مطلب برای مهندسان از نان شب نیز واجب تر است.
اما مطلب
قابلیتهای فراوانی دارد؛ مثل پردازش تصویر، شبیه سازی و......
شما
میتونید كتابهای زیادی در مورد مطلب به زبان فارسی پیدا كنید؛ اما بیشتر این
كتابها تك بعدی هستند.
همهی
اونها در مورد محاسابات توسط مطلب نوشته شده اند.
یكی از
قشنگ ترین قابلیت های مطلب Matlab
Graphics است .
Matlab
Graphics توانایی نمایش دادن نتایج،
نمودارها،پنجره های محاوره ای و .... است كه
به كمك آن
می توان
برنامههای كاربردی را خواناتر نمود. به كمك این توانایی می توانید برنامه هایی با
ظاهری زیباتر و
كابردوست
تر تولید كنید.
وبلاگهای
تخصصی فارسی هر روزگسترش بیشتر پیدا می کنند. اما
اکثرآنها بعد از مدتی به دور باطل می افتند.
من به
خاطر علاقهای كه به نوشتن دارم و احساس دین نسبت به زبان شیرین فارسی، وظیفه خودم
می دونم كه
در جهت
ارتقا زبان فارسی-تحت وب- هر كاری كه میتوانم انجام دهم.
در این
بلاگ قصد من آموزش مطلب است و امیدوارم که دلزده و خسته نشوم.
نوشته های پیشین ...
هرگونه استفاده تجاری از مــطالب این سایت بصورت
كتاب٬ نشریه٬ وب و ... ممنوع میباشد
All right
reserved©2005
Amin Bashi