آموزش واسط های گرافیکی (GUI) در متلب

GUI) graphical user interface) نام پنجره یا واسط گرافیکی در نرم افزار متلب می باشد و برای تمام کسانی که با متلب آشنایی دارند، مفید است که به کاربر این قابلیت را می دهد که تنها با استفاده از چند کلید و … کار شاید چندین هزار خط کد را در فایلهای اسکریپت انجام دهد. همینطور از مزایای آن این است که کاربر دچار سردرگمی نمی شود، به دلیل اینکه اصلاً با فرمولها و دستورات و … سروکار ندارد. مخصوصاً در پایان نامه ها و پروژه های دانشجویی که برنامه های سنگین با خطوط زیاد دارند، خیلی می تواند مفید باشد. بعلاوه محیطی گرافیکی و دلپذیر را برای کاربر ایجاد می کند.

و اما یکی از شاخصه های مهمش که آن را از فایل های اسکریپت و  mfileهای متلب مجزا می کند، در مواردی است که مثلاً شما می خواهید با تغییر یک پارامتر، نمودار پاسخ یک سیستم را ببینید. در یک فایل اسکریپت هر دفعه که پارامتر مورد نظر را تغییر می دهید، باید متلب را اجرا کنید و نمودار خروجی را ببینید ولی با استفاده از GUI شما می توانید با تغییر پیوسته پارامتر مورد نظرتان، تغییرات نمودار خروجی را هم به طور پیوسته ببینید.

کتاب ها و فیلم های آموزشی مختلفی وجود دارند که به این مقوله پرداخته اند، منتها بیشتر آنها تنها به روش GUIDE(با استفاده از ابزار آلات) طراحی  را انجام داده اند. در صورتی که در این فیلم آموزشی به هر دو روش GUIDE و Programmatic(صرفاً کد نویسی) طراحی  انجام گرفته و سعی هم شده که مفاهیم اساسی و پایه به طور کامل و مفصل و بر مبنای Help متلب توضیح داده شود تا شما عزیزان بتوانید با استفاده از آن نیازهایتان را برآورده کنید و از کتاب ها و فیلم های دیگر بی نیاز شوید.

ضمناً جهت مشاهده نمونه هایی از واسط های گرافیکی تولید شده می توانید به لینک های زیر مراجعه کنید:

۱- طراحی کنترل کننده PID با استفاده از GUI

۲- طراحی کنترل کننده مدلغزشی(Sliding Mode) با استفاده از GUI

۳- فیلتر کالمن با استفاده از GUI

لطفا برای خرید به انتهای پست مراجعه نمایید.


جلسه اول :

در این جلسه ابتدا مقدماتی راجع به GUI گفته شده،سپس دو روش تولید GUI ، یکی به روش GUIDE و دیگری به روش Programmatic بیان شده است.


جلسه دوم :

در این جلسه مثال جلسه اول به روش Programatic توضیح داده شد. سپس مثال تغییر لغزنده به روش GUID انجام شد تا نحوه استفاده از slider , editbox و textbox را یاد بگیریم.


جلسه سوم :

در این جلسه نحوه ساختن یک GUI با استفاده از یک فایل اسکریپت توضیح داده شد که در خلال آن نحوه ساختن فانکشن، همینطور عملکرد axes object بیان شد.


جلسه چهارم :

در این جلسه برنامه نوشته شده در جلسه سوم به روش Programmatic نوشته شد.


جلسه پنجم :

در این جلسه یکی دیگر از کاربردهای axes، به عنوان label و برچسب در GUI گفته شد که در این نوع labelگذاری می توان از فرمت latex برای نوشتن text استفاده کرد.


جلسه ششم :

در این جلسه برنامه نوشته شده در جلسه پنجم به روش Programmatic نوشته شد.


جلسه هفتم(قسمت اول) :

در این جلسه نحوه Import و وارد کردن یک متغیر به داخل GUI توضیح داده شد که در خلال آن عملکرد ListBox و نیز Popupmenu بیان شد.


جلسه هفتم(قسمت دوم) :

در این جلسه ادامه جلسه هفتم بیان شد. دستور uiresume، همینطور دستور ishghandle مورد استفاده قرار گرفت و نحوه کار با آنها نیز توضیح داده شد.


جلسه هشتم (قسمت اول) : 

در این جلسه قسمتی از برنامه جلسه هفتم به روش programmatic نوشته شد.


جلسه هشتم (قسمت دوم) : 

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


جلسه نهم :

در این جلسه نحوه Export کردن متغیرهای داخل gui به workspace توضیح داده شد و مثال مربوط به آن انجام گرفت.


جلسه دهم :

در این جلسه برنامه نوشته شده در جلسه نهم به روش Programmatic نوشته شد.


جلسه یازدهم : 

در این جلسه راجع به نحوه کار buttongroup به هر دو روش GUIDE و programmatic صحبت شد.


جلسه دوازدهم :

در این جلسه راجع به نحوه کار Table به روش GUIDE صحبت شد.


جلسه سیزدهم :

در این جلسه ادامه مبحث Table بیان شد. در ادامه هم از Table مانند plot برای نمایش دیتای جدولی استفاده شد.


جلسه چهاردهم :

در این جلسه مبحث Table به روش programmatic توضیح داده شده است.


جلسه پانزدهم :

در این جلسه راجع به نحوه تولید منوبار و منو به روش GUIDE توضیح داده شده.


جلسه شانزدهم :

در این جلسه راجع به نحوه تولید منوبار و منو به روش Programmatic توضیح داده شد.


جلسه هفدهم :

در این جلسه راجع به نحوه تولید تولبار (Toolbar) ، همینطور ابزارهای موجود در آن به روش GUIDE توضیح داده شده است.


جلسه هجدهم :

در این جلسه راجع به نحوه تولید تولبار به روش Programmatic توضیح داده شده است.


جلسه نوزدهم :

در این جلسه ادامه بحث نحوه تولید تولبار به روش Programmatic بیان شده است.


جلسه بیستم :

در این جلسه راجع به Context menu، همینطور نحوه تولید آن به روش GUIDE توضیح داده شده است.


جلسه بیست و یکم :

در این جلسه راجع به نحوه تولید Context menu به روش Programmatic توضیح داده شده است.


جلسه بیست و دوم :

در این جلسه راجع به نحوه تولید تب Tab به هر دو روش GUIDE و Programmatic توضیح داده شده است.


جلسه بیست و سوم : 

در این جلسه هم مانند جلسه قبل به نحوه تولید تب Tab به هر دو روش GUIDE و Programmatic پرداخته شده است.


جلسه بیست و چهارم : 

در این جلسه راجع به نحوه استفاده از صفحه کلید در gui صحبت شده است.


جلسه بیست و پنجم :

در این جلسه راجع به نحوه استفاده از دکمه های موس در gui صحبت شده است.


جلسه بیست و ششم :

در این جلسه که آخرین جلسه از این مبحث هم می باشد، ادامه جلسه قبل بحث شده است و دو تا شکلی که در جلسه بیست و چهارم با استفاده از کلیدهای جهتی داخل فیگر جابجا شدند.


کل جلسات: کل جلسات هم با تخفیف ۳۰ درصد به قیمت ۱۹۵۰۰۰ تومان خدمت شما عزیزان عرضه می شود.

 

برای خرید کلیک کنید

۶ نظر

  1. با سلام

    بسیار ممنون میشم اگه لطف نموده و ملاحظه فرمایید

    من می خواستم فایل ” آموزش واسط های گرافیکی (gui) در متلب” رو خریداری کنم ولی قبلش میخوام مطمئن بشم که مواردی که من نیاز درام تو اون فایل آموزشی بررسی شده باشه.

    من یک gui نسبتا حجیم ایجاد کرده ام که شامل چندین سربرگ (tab) هست و دارای تعداد بسیار زیادی هم جدول هست و این gui با استفاده از GUIDE ایجاد شده است. من چند تا مشکل دارم.

    ۱- اولین سوالم این هست که اگه بخوام اون رو با یک کامپیوتر دیگه که متلب روش نصب نیست اجرا کنم آیا امکانپذیر هست؟ (البته میدونم که با روش های مختلف میشه فایل exe ایجاد کرد ولی میخوام اشکالات احتمالیش رو بدونم).

    ۲- فرض کنید یک جدول با guide ایجاد می کنید و موارد مختلف رو در سردیف ها می نویسید. وقتی جدول رو ایجاد میکنید ستونی که در حقیقت عنوان ردیف ها در اون وارد شده (نه ستون اول که در آن داده ها رو وارد می کنید) خیلی پهن تر از مقداری که نیاز هست بوجود میاد و امکان کم کردن عرض اون نیست. خواستم بدونم چطور میشه عرض این ستون رو به اندازه دلخواه تغییر داد؟

    ۳- چگونه می توان در یک یا چند سطر از ستونی که در قسمت ۲ اشاره شد منوی کشویی (pop-up menu) ایجاد کرد؟

    ۴- شما با 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’.

    برای رفع این اشکال باید حتما از قبل در خانه های جدول داده وارد شود (مثلا همه آنها را صفر قرار دهیم). سوال من این هست که چگونه می توان بدون وارد کردن داده اولیه در جدول، عمل فوق را انجام داد؟

    ۵- سوال آخر این که چون این gui حجیم هست و به گونه ای است که کاربر بایست تعداد بسیار زیادی داده اولیه را در آن وارد کند و روزانه تعداد کمی از آنها را بروزرسانی کند، چگونه میتوان آخرین داده ای که کاربر وارد کرده را درون آن ذخیره کرد تا دفعه بعد که gui اجرا می شود آخرین داده های که کاربر وارد کرده را نمایش دهد و نیاز نباشد کابر در هر بار انبوهی داده وارد نماید که کاری خسته کننده خواهد بود.

    برای اینکار من از توابع savestate و restorestate استفاده می کنم اما اشکال آن این است که علاوه بر جالب نبودن، برای جداولی که درون guide به ناچار با استفاده از programming ایجاد شده نیز کار نمی کند و ممکن است برای موردی که در قسمت ۱ مطرح شد نیز ایجا اشکال نماید.

    خواستم بدونم روش بهتر چیست؟

    با تشکر از صبر و حوصله جنابعالی

    1. با سلام خدمت شما برادر بزرگوار
      از اینکه دیر پاسخ سوالتان را می دهم عذرخواهی می کنم، بخاطر اینکه دیر متوجه شدم.
      خدمت شما عرض کنم در مورد ۱، با همان روش exe کردن می توانید به هدفتان برسید. من این کار را در یک کامپیوتر دیگر که البته متلب هم روی آن نصب بود، البته بدون استفاده از متلب انجام دادم که خیلی کند اجرا شد. شما هم می توانید روش exe کردن را در اینترنت جستجو کنید و توضیحات مفصلش را در آنجا ببینید.
      در مورد ۲، اندازه خانه های سرردیف ها و یا سرستون ها تا آنجایی که من می دانم، متناسب با نوشته داخل آن تنظیم می شود و قابل تغییر نیست.
      در مورد ۴ یکی از روشها شاید این باشد که یک if قرار دهید.
      راجع به دو مورد دیگر هم به نظرم توضیحات کامل داخل آموزشها وجود دارد. هم به روش guide و هم به روش programing.
      به نظرم اگر آموزشها را فراهم کنید ضرر نمی کنید.

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

  2. سلام من تمام جلسات رو تهیه کردم و شروع به یادگیری کردم در جلسه سوم مطابق شما پیش میرم ولی همون اول تو saveکردن ایراد میگیرد برنامه رو که با نام جدیدsave as میکنم موقع اجرا خطا میگیره و وقتی axisتعریف میکنم باز هم خطا میگیره

پاسخ دادن به کوروش لغو پاسخ

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *