جلسه اول :
در این جلسه ابتدا مقدماتی راجع به GUI گفته شده،سپس دو روش تولید GUI ، یکی به روش GUIDE و دیگری به روش Programmatic بیان شده است.
با یک مثال نحوه عملکرد پوش باتن به روش GUIED توضیح داده شده، همچنین نحوه ارتباط با آن بیان شده است. خواص ویژگی اشیاء (Object Properties) مورد بحث قرار گرفت. هندل یک شی بدست آمد و در نهایت با استفاده از دو دستور بسیار مفید get و set مقدار Prorerty های یک Object را بدست آورده، همینطور توانستیم آنها را عوض کنیم.
محتویات دانلود: فیلم آموزشی، فایل متلب
حجم کل فایل: 143 مگابایت
مدت زمان آموزش: 52 دقیقه
پیش نمایش جلسه اول:
جلسه دوم :
در این جلسه مثال جلسه اول به روش Programatic توضیح داده شد. سپس مثال تغییر لغزنده به روش GUID انجام شد تا نحوه استفاده از slider , editbox و textbox را یاد بگیریم.
در این مثال با تغییر لغزنده، مقدار آن داخل editbox نمایش داده می شود. همینطور با مقدار دادن به editbox ، مقدار لغزنده عوض می شود. در نهایت هم همین مثال با استفاده از روش Programatic انجام شد.
محتویات دانلود: فیلم آموزشی، فایل متلب
حجم کل فایل: 126 مگابایت
مدت زمان آموزش: 48 دقیقه
پیش نمایش جلسه دوم:
جلسه سوم :
در اين جلسه نحوه ساختن يک GUI با استفاده از يک فايل اسکريپت توضيح داده شد که در خلال آن نحوه ساختن فانکشن، همينطور عملکرد axes object بيان شد.
نحوه import کردن تصوير و load کردن فايل با استفاده از دستور uigetfile گفته شد. در نهايت هم نحوه عملکرد radiobutton و checkbox بيان شد که تمام اينها در قالب مثال پاسخ پله توضيح داده شدند.
محتویات دانلود: فیلم آموزشی، فایل متلب
حجم کل فایل: 143 مگابایت
مدت زمان آموزش: 51 دقیقه
پیش نمایش جلسه سوم:
جلسه چهارم :
در اين جلسه برنامه نوشته شده در جلسه سوم به روش Programmatic نوشته شد.
همينطور نحوه همراستا کردن object ها در اين روش توضيح داده شد. در نهايت هم چگونگي نوشتن يک text در چند خط، بيان شد.
محتویات دانلود: فیلم آموزشی، فایل متلب
حجم کل فایل: 133مگابایت
مدت زمان آموزش: 50 دقیقه
پیش نمایش جلسه چهارم:
جلسه پنجم :
در اين جلسه يکي ديگر از کاربردهاي axes، به عنوان label و برچسب در GUI گفته شد که در اين نوع labelگذاري مي توان از فرمت latex براي نوشتن text استفاده کرد.
در انتها هم text يک تابع تبديل به عنوان نمونه با فرمت latex نوشته شد. همچنين دو PDF فارسی و انگليسی در زمينه آموزش latex در پيوست فايل آموزشی قرار داده شده است.
محتویات دانلود: فیلم آموزشی، فایل متلب، دو PDF راجع به Latex
حجم کل فایل: 129مگابایت
مدت زمان آموزش: 47 دقیقه
پیش نمایش جلسه پنجم:
جلسه ششم :
در اين جلسه برنامه نوشته شده در جلسه پنجم به روش Programmatic نوشته شد.
در انتها هم نحوه تغيير text يک تابع تبديل با تغيير تابع تبديل با روش Programmatic ، همينطور روش GUIDE نوشته شد.
محتویات دانلود: فیلم آموزشی، فایل متلب
حجم کل فایل: 137مگابایت
مدت زمان آموزش: 49 دقیقه
پیش نمایش جلسه ششم:
جلسه هفتم(قسمت اول) :
در اين جلسه نحوه Import و وارد کردن يک متغير به داخل GUI توضيح داده شد که در خلال آن عملکرد ListBox و نيز Popupmenu بيان شد.
همچنين روش کار با دستور switch case گفته شد. دستور evalin مورد استفاده قرار گرفت و نحوه کار آن نيز توضيح داده شد. در انتها هم مقداري از يک مثال در رابطه با callکردن يک GUI داخل يک GUI ديگر انجام گرفت که در آن دستور uiwait مورد استفاده قرار گرفت و نحوه کار با آن نيز توضيح داده شد.
محتویات دانلود: فیلم آموزشی، فایل متلب
حجم کل فایل: 122مگابایت
مدت زمان آموزش: 46 دقیقه
پیش نمایش جلسه هفتم:
جلسه هفتم(قسمت دوم) :
در اين جلسه ادامه جلسه هفتم بيان شد. دستور uiresume، همينطور دستور ishghandle مورد استفاده قرار گرفت و نحوه کار با آنها نيز توضيح داده شد.
نحوه ورودي دادن به GUI فراخواني شده را هم به هر دو صورت بيان کرديم. در نهايت هم مقداري راجع به فانکشن ها صحبت کرديم. نحوه توليد فانکشن و همينطور انواع فانکشن هايي که مي توانند وجود داشته باشند، از جمله فانکشن هاي محلي (local functions)، فانکشن هاي تودرتو (nested functions) و فانکشن هاي مستعار (anonymous functions) توضيح داده شدند.
محتویات دانلود: فیلم آموزشی، فایل متلب
حجم کل فایل: 132مگابایت
مدت زمان آموزش: 48 دقیقه
جلسه هشتم (قسمت اول) :
در اين جلسه قسمتي از برنامه جلسه هفتم به روش programmatic نوشته شد.
فضاهاي base workspace و caller workspace که در دستور evalin به کار برده مي شوند، به طور مفصل توضيح داده شدند. در نهايت هم نحوه اضافه کردن help به يک فانکشن و همينطور به يک فايل اسکريپت توضيح داده شد.
محتویات دانلود: فیلم آموزشی، فایل متلب
حجم کل فایل: 131مگابایت
مدت زمان آموزش: 50 دقیقه
پیش نمایش جلسه هشتم:
جلسه هشتم (قسمت دوم) :
در اين جلسه ادامه قسمت اول از جلسه هشتم بيان شد.
توضيحاتي راجع به فانکشن هندل ها ارائه شد. همينطور فرق آرگومان ورودي guidata در دو روش guide و programmatic بيان شد.
محتویات دانلود: فیلم آموزشی، فایل متلب
حجم کل فایل: 119مگابایت
مدت زمان آموزش: 44 دقیقه
جلسه نهم :
در اين جلسه نحوه Export کردن متغیرهای داخل gui به workspace توضیح داده شد و مثال مربوط به آن انجام گرفت.
همینطور دستور assignin مورد استفاده قرار گرفت و فضاهای مربوط به آن در فانکشن های مختلف توضیح داده شد.
محتویات دانلود: فیلم آموزشی، فایل متلب
حجم کل فایل: 121مگابایت
مدت زمان آموزش: 46 دقیقه
پیش نمایش جلسه نهم:
جلسه دهم :
در اين جلسه برنامه نوشته شده در جلسه نهم به روش Programmatic نوشته شد.
در انتها هم روش های به اشتراک گذاشتن متغیرها در فضاهای workspace مختلف به طور کلی و به طور خاص در callback فانکشن های مختلف توضیح داده شد.
محتویات دانلود: فیلم آموزشی، فایل متلب
حجم کل فایل: 148مگابایت
مدت زمان آموزش: 57 دقیقه
پیش نمایش جلسه دهم:
جلسه یازدهم :
در اين جلسه راجع به نحوه کار buttongroup به هر دو روش GUIDE و programmatic صحبت شد.
نحوه کار togglebutton توضيح داده شد. استفاده از selectionchangefcn properties، همينطور selectedobject properties توضيح داده شد. eventdata بيان شد و همينطور propertyهايي که مي توانند eventdata را توليد کنند بيان شدند. نحوه استفاده از units در objectهايي غير از uicontrol در روش programmatic بيان شد.
محتویات دانلود: فیلم آموزشی، فایل متلب
حجم کل فایل: 195مگابایت
مدت زمان آموزش: 60 دقیقه
پیش نمایش جلسه یازدهم:
جلسه دوازدهم :
در اين جلسه راجع به نحوه کار Table به روش GUIDE صحبت شد.
روشهاي ايجاد پنجره Table Property Editor بيان شد. نحوه قراردادن اسم براي سطر و ستون، نحوه تعيين فرمت، همينطور Editable کردن ستونها توضيح داده شد. سه روش مقداردهي جدول بيان شد. نحوه ايجاد يک آرايه سلولي با استفاده از يک ماتريس عددي به وسيله دستور cell2mat گفته شد. نحوه ايجاد و استفاده از دو خاصيت بسيار مهم CellEditCallback و CellSelectionCallback گفته شد.آرگومانهاي وروديشان توضيح داده شدند. مخصوصا تک تک فيلدهاي آرگومان eventdata توضيح داده شدند. در نهايت هم با استفاده از آرگومان eventdata از طريق يکي از ستونهاي Table توانستيم يک فيگر ايجاد کنيم.
محتویات دانلود: فیلم آموزشی، فایل متلب
حجم کل فایل: 247مگابایت
مدت زمان آموزش: 80 دقیقه
پیش نمایش جلسه دوازدهم:
جلسه سیزدهم :
در اين جلسه ادامه مبحث Table بيان شد. در ادامه هم از Table مانند plot براي نمايش ديتای جدولی استفاده شد.
در انتها هم CloseRequestFcn Property معرفي و توضيح داده شد.
محتویات دانلود: فیلم آموزشی، فایل متلب
حجم کل فایل: 120مگابایت
مدت زمان آموزش: 45 دقیقه
جلسه چهاردهم :
در اين جلسه مبحث Table به روش programmatic توضيح داده شده است.
محتویات دانلود: فیلم آموزشی، فایل متلب
حجم کل فایل: 145مگابایت
مدت زمان آموزش: 53 دقیقه
پیش نمایش جلسه چهاردهم:
جلسه پانزدهم :
در اين جلسه راجع به نحوه توليد منوبار و منو به روش GUIDE توضيح داده شده.
بعضي از property هاي مهم منوبار توضيح داده شدند. مخصوصا Check mark property به همراه مثال بيان شد. دو منوي File و Desktop ايجاد شدند. از منوي File نحوه عملکرد و ساختن آيتم هاي New، Open، Close و Save بيان شدند. همينطور از آيتم New هم نحوه عملکرد و ساختن آيتم هاي Script، Figure و GUI توضيح داده شدند. از منوي Desktop هم نحوه عملکرد و ساختن آيتم Dock بيان شد. در نهايت هم property Window Style توضيح داده شد.
محتویات دانلود: فیلم آموزشی، فایل متلب
حجم کل فایل: 168مگابایت
مدت زمان آموزش: 63 دقیقه
پیش نمایش جلسه پانزدهم:
جلسه شانزدهم :
در اين جلسه راجع به نحوه توليد منوبار و منو به روش Programmatic توضيح داده شد.
دو منوي File و Edit ايجاد شدند. از منوي File نحوه عملکرد و ساختن آيتم هاي Save، Save As و Save Workspace As بيان شدند. همچنين فرق بين آيتم Save در اين روش با روش GUIDE توضيح داده شد. از منوي Edit هم نحوه عملکرد و ساختن آيتم Clear Figure بيان شد. همينطور HandleVisibility property و showhiddenhandles property توضيح داده شد که کاربرد خيلي زيادي در gui دارد.
محتویات دانلود: فیلم آموزشی، فایل متلب
حجم کل فایل: 193مگابایت
مدت زمان آموزش: 72 دقیقه
پیش نمایش جلسه شانزدهم:
جلسه هفدهم :
در اين جلسه راجع به نحوه توليد تولبار (Toolbar) ، همينطور ابزارهاي موجود در آن به روش GUIDE توضيح داده شده است.
بعضي از property هاي مهم آن توضيح داده شدند. نحوه توليد تولبار استاندارد توضيح داده شد. راجع به نحوه ايجاد پوش تول و تاگل تول هاي موجود در تولبار توضيح داده شد. در انتها هم بعضي از ابزارهاي موجود در تولبار استاندارد ساخته شدند. من جمله: ابزار Open File، ابزار Edit Plot و ابزار Brush/Select Data
محتویات دانلود: فیلم آموزشی، فایل متلب
حجم کل فایل: 180مگابایت
مدت زمان آموزش: 68 دقیقه
پیش نمایش جلسه هفدهم:
جلسه هجدهم :
در اين جلسه راجع به نحوه توليد تولبار به روش Programmatic توضيح داده شده است.
در ادامه ابزارهاي Zoom In، Zoom Out، Pan، Rotate 3D و Data Cursor ساخته شدند. نحوه Load کردن آيکن هاي مربوط به اين تصاوير به 4 روش بيان شد. در نهايت هم نحوه جلوگيري از دسترسي داشتن به هندل تولبار و ابزارهاي داخل آن توضيح داده شد.
محتویات دانلود: فیلم آموزشی، فایل متلب
حجم کل فایل: 134مگابایت
مدت زمان آموزش: 51 دقیقه
پیش نمایش جلسه هجدهم:
جلسه نوزدهم :
در اين جلسه ادامه بحث نحوه توليد تولبار به روش Programmatic بيان شده است.
در ادامه ابزارهاي Print Figure، Link Plot، Insert Colorbar، Insert Legend، Hide Plot Tools و Show Plot Tools and Dock Figure ساخته شده اند. سپس به نحوه توليد تولبار با استفاده از مقدار String به جاي فانکشن هندل در پراپرتي ClickedCallback و يا On/OffCallback پرداخته شده است. نحوه جابجاکردن ابزارها در تولبار به روش Programmatic بيان شده است. همينطور نحوه ايجاد ابزار در کنار ابزارهاي تولبار استاندارد توضيح داده شده است. در نهايت هم يک روش بسيار جالب و آسان براي توليد تولبار بيان شده است که پيشنهاد مي کنم حتماً اين قسمت را ببينيد.
محتویات دانلود: فیلم آموزشی، فایل متلب
حجم کل فایل: 172مگابایت
مدت زمان آموزش: 61 دقیقه
پیش نمایش جلسه نوزدهم:
جلسه بیستم :
در اين جلسه راجع به Context menu، همينطور نحوه توليد آن به روش GUIDE توضيح داده شده است.
در ادامه هم چند تا از آيتم هاي Axes Context menu ساخته شده اند. من جمله آيتم هاي Cut، Copy، Paste، Clear Axes، Delete، Font و Grid
محتویات دانلود: فیلم آموزشی، فایل متلب
حجم کل فایل: 136مگابایت
مدت زمان آموزش: 53 دقیقه
پیش نمایش جلسه بیستم:
جلسه بیست و یکم :
در اين جلسه راجع به نحوه توليد Context menu به روش Programmatic توضيح داده شده است.
در ادامه هم نحوه ساخت چند تا از آيتم هاي Line Context menu ساخته شده اند. من جمله آيتم هاي LineStyle، LineWidth ، Marker، Marker Size و تمام ساب آيتم هاي آنها، آن هم با روشي که خود نرم افزار متلب اين آيتم ها را مي سازد. در نتيجه کد اين آيتم ها و ساب آيتم ها با تعداد خط هاي کمتري نوشته شده است.
محتویات دانلود: فیلم آموزشی، فایل متلب
حجم کل فایل: 172مگابایت
مدت زمان آموزش: 65 دقیقه
پیش نمایش جلسه بیست و یکم:
جلسه بیست و دوم :
در اين جلسه راجع به نحوه توليد تب Tab به هر دو روش GUIDE و Programmatic توضيح داده شده است.
محتویات دانلود: فیلم آموزشی، فایل متلب
حجم کل فایل: 171مگابایت
مدت زمان آموزش: 63 دقیقه
پیش نمایش جلسه بیست و دوم:
جلسه بیست و سوم :
در اين جلسه هم مانند جلسه قبل به نحوه توليد تب Tab به هر دو روش GUIDE و Programmatic پرداخته شده است.
منتها با يک رويکردي متفاوت با جلسه قبل به طوري که در تمام ورژن هاي متلب مي تواند مورد استفاده قرار گيرد.
محتویات دانلود: فیلم آموزشی، فایل متلب
حجم کل فایل: 219مگابایت
مدت زمان آموزش: 85 دقیقه
پیش نمایش جلسه بیست و سوم:
جلسه بیست و چهارم :
در اين جلسه راجع به نحوه استفاده از صفحه کليد در gui صحبت شده است.
چهار پراپرتيي که با آنها مي توان اين کار را انجام داد توضيح داده شده اند که عبارتند از: KeyPressFcn، KeyReleaseFcn ، WindowKeyPressFcn و WindowKeyReleaseFcn . دو مثال هم زده شده است: اولين مثال که با استفاده از روش GUIDE انجام شده، ايجاد يک کليد ميانبر براي يک پوش باتن است. دومين مثال هم، ايجاد يک شکل داخل فيگر و حرکت دادن آن با استفاده از صفحه کليد است. مثل حرکت دادن آبجکت هاي GUIDE داخل پنل آن. که اين مثال هم با استفاده از روش Programmatic انجام شده است.
محتویات دانلود: فیلم آموزشی، فایل متلب
حجم کل فایل: 149مگابایت
مدت زمان آموزش: 57 دقیقه
پیش نمایش جلسه بیست و چهارم:
جلسه بیست و پنجم :
در اين جلسه راجع به نحوه استفاده از دکمه هاي موس در gui صحبت شده است.
چهار پراپرتيي که با آنها مي توان اين کار را انجام داد توضيح داده شده اند که عبارتند از: WindowButtonDownFcn، WindowButtonMotionFcn ، WindowButtonUpFcn و ButtonDownFcn. نحوه ايجاد يک Pointer به شکل دلخواه بيان شده است. نحوه بدست آوردن هندل يک آبجکت در صورتي که تنها موس روي آن آبجکت قرار گيرد، توضيح داده شده است. همينطور نحوه بدست آوردن مکان موس داخل يک فيگر بيان شده است. يک مثال هم با استفاده از روش Programmatic زده شده که در آن يک نقطه داخل فيگر ايجاد شده و با استفاده از موس داخل فيگر جابجا مي شود.
محتویات دانلود: فیلم آموزشی، فایل متلب
حجم کل فایل: 165مگابایت
مدت زمان آموزش: 61 دقیقه
پیش نمایش جلسه بیست و پنجم:
جلسه بیست و ششم :
در اين جلسه که آخرین جلسه از این مبحث هم می باشد، ادامه جلسه قبل بحث شده است و دو تا شکلي که در جلسه بيست و چهارم با استفاده از کليدهاي جهتي داخل فيگر جابجا شدند.
در اين جلسه نحوه حرکت دادنشان با استفاده از موس به روش Programmatic بيان شده است. در ادامه پراپرتي WindowScrollWheelFcn در فيگر مورد بررسي قرار گرفت و با استفاده از آن عملکرد دو ابزار Zoom In و Zoom Out که در تولبار وجود دارند، در داخل فيگر پياده شد. در نهايت هم نحوه نوشتن همين برنامه به روش GUIDE توضيح داده شده است.
محتویات دانلود: فیلم آموزشی، فایل متلب
حجم کل فایل: 142مگابایت
مدت زمان آموزش: 52 دقیقه
پیش نمایش جلسه بیست و ششم:
کوروش
با سلام
بسیار ممنون میشم اگه لطف نموده و ملاحظه فرمایید
من می خواستم فایل ” آموزش واسط های گرافیکی (gui) در متلب” رو خریداری کنم ولی قبلش میخوام مطمئن بشم که مواردی که من نیاز درام تو اون فایل آموزشی بررسی شده باشه.
من یک gui نسبتا حجیم ایجاد کرده ام که شامل چندین سربرگ (tab) هست و دارای تعداد بسیار زیادی هم جدول هست و این gui با استفاده از GUIDE ایجاد شده است. من چند تا مشکل دارم.
1- اولین سوالم این هست که اگه بخوام اون رو با یک کامپیوتر دیگه که متلب روش نصب نیست اجرا کنم آیا امکانپذیر هست؟ (البته میدونم که با روش های مختلف میشه فایل exe ایجاد کرد ولی میخوام اشکالات احتمالیش رو بدونم).
2- فرض کنید یک جدول با guide ایجاد می کنید و موارد مختلف رو در سردیف ها می نویسید. وقتی جدول رو ایجاد میکنید ستونی که در حقیقت عنوان ردیف ها در اون وارد شده (نه ستون اول که در آن داده ها رو وارد می کنید) خیلی پهن تر از مقداری که نیاز هست بوجود میاد و امکان کم کردن عرض اون نیست. خواستم بدونم چطور میشه عرض این ستون رو به اندازه دلخواه تغییر داد؟
3- چگونه می توان در یک یا چند سطر از ستونی که در قسمت 2 اشاره شد منوی کشویی (pop-up menu) ایجاد کرد؟
4- شما با guide یک جدول ایجاد می کنید و میخواهید با کد نویسی در celledit callback آن بخواهید که مقدار ستون اول و دوم را جمع نموده و در ستون سوم قرار دهد؟
اگر از کد زیر استفاده کنید (فرض می کنیم tag این جدول uitable 1 می باشد.)
Mydata = get(handles.uitable1,’data’);
Mydata(:,3) = Mydata(:,1) + Mydata(:,2);
set(handles.uitable1,’data’,Mydata);
پس از اجرا کردن پیغام خطای زیر را می دهد
Undefined operator ‘+’ for input arguments of type ‘cell’.
برای رفع این اشکال باید حتما از قبل در خانه های جدول داده وارد شود (مثلا همه آنها را صفر قرار دهیم). سوال من این هست که چگونه می توان بدون وارد کردن داده اولیه در جدول، عمل فوق را انجام داد؟
5- سوال آخر این که چون این gui حجیم هست و به گونه ای است که کاربر بایست تعداد بسیار زیادی داده اولیه را در آن وارد کند و روزانه تعداد کمی از آنها را بروزرسانی کند، چگونه میتوان آخرین داده ای که کاربر وارد کرده را درون آن ذخیره کرد تا دفعه بعد که gui اجرا می شود آخرین داده های که کاربر وارد کرده را نمایش دهد و نیاز نباشد کابر در هر بار انبوهی داده وارد نماید که کاری خسته کننده خواهد بود.
برای اینکار من از توابع savestate و restorestate استفاده می کنم اما اشکال آن این است که علاوه بر جالب نبودن، برای جداولی که درون guide به ناچار با استفاده از programming ایجاد شده نیز کار نمی کند و ممکن است برای موردی که در قسمت ۱ مطرح شد نیز ایجا اشکال نماید.
خواستم بدونم روش بهتر چیست؟
با تشکر از صبر و حوصله جنابعالی
مهندس اباذر نورمحمدی
با سلام خدمت شما برادر بزرگوار
از اینکه دیر پاسخ سوالتان را می دهم عذرخواهی می کنم، بخاطر اینکه دیر متوجه شدم.
خدمت شما عرض کنم در مورد 1، با همان روش exe کردن می توانید به هدفتان برسید. من این کار را در یک کامپیوتر دیگر که البته متلب هم روی آن نصب بود، البته بدون استفاده از متلب انجام دادم که خیلی کند اجرا شد. شما هم می توانید روش exe کردن را در اینترنت جستجو کنید و توضیحات مفصلش را در آنجا ببینید.
در مورد 2، اندازه خانه های سرردیف ها و یا سرستون ها تا آنجایی که من می دانم، متناسب با نوشته داخل آن تنظیم می شود و قابل تغییر نیست.
در مورد 4 یکی از روشها شاید این باشد که یک if قرار دهید.
راجع به دو مورد دیگر هم به نظرم توضیحات کامل داخل آموزشها وجود دارد. هم به روش guide و هم به روش programing.
به نظرم اگر آموزشها را فراهم کنید ضرر نمی کنید.
مهندس اباذر نورمحمدی
با سلام مجدد خدمت شما برادر بزرگوار
راجع به سوال دومتان یک کاری که می توانید بکنید این است که ستون سرردیف ها را پاک کنید و در عوض یک ستون به ستون های داده هایتان اضافه کنید و سرردیف ها را داخل این ستون اضافه کنید.
موفق باشید.
علیرضا محمدی ( مالک تایید شده )
سلام من تمام جلسات رو تهیه کردم و شروع به یادگیری کردم در جلسه سوم مطابق شما پیش میرم ولی همون اول تو saveکردن ایراد میگیرد برنامه رو که با نام جدیدsave as میکنم موقع اجرا خطا میگیره و وقتی axisتعریف میکنم باز هم خطا میگیره
علیرضا محمدی ( مالک تایید شده )
@علیرضا محمدی, مشکل از ورژن متلب بود که با عوض کردن نسخه متلب مشکل حل شد
Ali
لطفا یک پیش نمایش از این بخش قرار دهید