GRAPHICAL USER INTERFACE

آموزش GUI : 

 

همان طور که برای خیلی از زبانهای برنامه نویسی پایه مثل Basic و c++ قسمتی

به نام visual ایجاد شده است ، MATLAB هم ابزاری به نام GUIDE دارد که

توسط آن می توان رابط های گرافیکی مثل دکمه ها ((PUSH BUTTON ، لیست

ها (LIST BOX) ، اسلایدرها( SLIDER) و. . . ایجاد کرد این ابزار زمانی به درد

می خورد که شما آن را برای افرادی که احتمالا کار با دستورات MATLAB را یاد

ندارند به کار ببرید .مثلا فرض کنید شما می خواهید یک نمودار را با قطر های مختلف

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

MATLAB آشنا باشید می توانید تمام دستورات را به اجزای گرافیکی بسپارید تا مثلا

با فشار یک دکمه یک نمودار رسم شود و با انتخاب یک یک گزینه از منوی کشویی

فرضا شکل نمودار تغییر کند .

 

و اما شروع کار با GUI :

 

برای ایجاد یک GUI خالی کافیست از ابزار GUIDE بهره ببریم و یا از منوی File

گزینه New و سپس GUI را انتخاب کنیم . در ادامه در برگه  Create New GUI

و با انتخاب  Blank GUIصفحه ای مانند شکل زیر ایجاد می شود :

 

new gui

ادامه نوشته

 

شرط swich-case :

 

از اين ساختار براي تصميم گيري چندگانه بر اساس مقادير مختلف يك عبارت استفاده مي شود.به طور

کلي در تمام تصميم گيري ها که بيش از ٣ انتخاب وجود داشته باشد از اين دستور استفاده مي شود.

 

به عنوان مثال فرض کنيد متغيري مثل x ، مقادیری مثل 1، 2، 3 را اختيار مي کند و مي خواهيد بر اساس مقاديرمختلف x تصميم گيري مختلفي را انجام دهيد.اگر برابر ١ بود دستورات ١، اگر برابر ٢ بود دستورات ٢ و اگربرابر ٣ بود دستورات ٣ اجرا شوند و در صورتي که هيچ کدام از اين ها نبود دستورات ٤ (otherwise) اجرا شوند.جالت کلي اين دستور را مشاهده مي کنيد:

 

 

switch switch_expr

case case_expr,

statement, ..., statement

case {case_expr١, case_expr٢, case_expr٣,...}

statement, ..., statement

...

otherwise,

statement, ..., statement

end

به چند نكته در اين مورد بايد دقت کرد:

 

١) پس از اجراي هر يك از دستورات روند اجرا برنامه به بعد از End منتقل مي شود و ساير Case ها کنترل

نمي شوند.

٢)در بالا در مورد Case دوم در صورتي آه عبارت مورد نظر با هر يك ٣ عبارت داخل کروشه ({})برابر باشد

دستورات اجرا مي شوند.

٣)استفاده از Otherwise نيز اختياري است.

 

ادامه نوشته

مطالب زیر را از یکی از کتابهای PDF آورده ام (سایت irche.com ) که امیدوارم مثمر ثمر واقع شوند .

 

آغاز برنامه نویسی در MATLAB :

 

تا به حال تنها از توابعي استفاده ميکرديم که قبلا براي matlab تعريف شده بود؛ ولي ممكن است اين

توابع نتوانند نيازهاي ما را پاسخ دهند، يا بخواهيم توابعي با کاربري خاص بنويسيم.

 

يك تابع (function file) مانند يك m-file است با اين تفاوت که خط اول آن به صورت زير است:

 

 

function [outputs]= name(inputs)

 

اين خط مشخص مي کند که اين M-file يك تابع است. همچنين تعداد ورودي ها و خروجي ها را مشخص

کرده و هر يك را در يك متغير قرار مي دهد.در صورتي که تنها يك ورودي داشته باشيم نيازي به کروشه []

نیست .name نيز نام تابع را مشخص مي کند.

 

بهتر است براي خواناتر شدن برنامه از عبارات توضيحي استفاده کنيم.اين عبارات بايد ورودي ها و خروجي

ها را مشخص کند.همچنين مي توان نام برنامه نويس و تاريخ نوشتن آن را نيز مشخص کرد. اين خطوط با

اجرا دستور help name << به نمایش در می آیند .

به عنوان مثال  M-file زیر دستور prod را شبیه سازی می کند:

 

 

 

function p=prod2 (x)

% function p=PROD2 (x)

% shabih sazi farman PROD

% a:radif b:sotoon

[a,b]=size2(x);

p(1,:)=x(1,:);

for i=2:a,

% satr aval p dar satr haye x zarb shode

% va dar satr aval p zakhir mishavad

p(1,:)=p(1,:).*x(i,:);

end

% if x is rowvector

while a==1;

p=1;

for i=1:b,

p=p*x(i);

end

a=0;

end

ادامه نوشته

دانلود کتاب

کتاب آموزشی MATLAB برای دانلود:

 

در زیر لینک یک کتاب آموزش MATLAB به زبان فارسی را قرار داده ام که امیدوارم آن را دانلود کرده و از آن استفاده لازم را ببرید :

 

کتاب فارسی آموزش MATLAB                                  دانلود 279KB

 

                                                                                         

دستورات پر کاربرد برای کار با پورت سریال:

 

دستور fgetl :

 

یک خط متنی از وسیله را می خواند(با رها کردن terminator)

 

حالات استفاده :

 

tline = fgetl(obj)

[tline,count] = fgetl(obj)

[tline,count,msg] = fgetl(obj)

 

obj

شئ پورت سریال است .

tline

خواندن متن از وسیله ، بدون terminator

count

تعداد مقادیر خوانده شده ، شامل terminator

msg

یک پیغام نمایش داده می شود اگر عمل خواندن با موفقیت نباشد.

 

دستور fgets :

 

یک خط متنی از وسیله را می خواند(که شامل terminator می شود.)

 

حالات استفاده :

 

tline = fgets(obj)

[tline,count] = fgets(obj)

[tline,count,msg] = fgets(obj)

 

obj

شئ پورت سریال است .

tline

خواندن متن از وسیله ،با terminator

count

تعداد بایتهای خوانده شده ، شامل terminator

msg

یک پیغام نمایش داده می شود اگر عمل خواندن با موفقیت نباشد.

 

دستور fprintf :

 

داده متنی را در وسیله می نویسد.

 

حالات استفاده :

 

 

fprintf(obj,'cmd')

fprintf(obj,'format','cmd')

fprintf(obj,'cmd','mode')

fprintf(obj,'format','cmd','mode')

 

 

obj

شئ پورت سریال است .

'cmd'

رشته نوشته شده در وسیله

'format'

تعیین تبدیل در زبان c (به راهنمای MATLAB مراجعه کنید.)

mode'

مشخص می کند که داده سنکرون یا آسنکرون نوشته شود .

 

ادامه نوشته

پورتهای سریال –قسمت دوم

مشخصات اجزاء پورت سریال:

 

مشخصات ارتباطی ، خواندن ، نوشتن اجزای شئ پورت سریال به طور خلاصه در زیر برحسب الفبا آمده اند:

 

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

 

مشخصات ارتباطی :

 

BaudRate:

 

سرعتی که بیتها فرستاده می شوند را مشخص می کند .

 

توضیحات :

 

شما BaudRate را بر حسب بیت بر ثانیه پیکربندی می کنید.بیت های ارسالی شامل بیت شروع ،

بیت های داده ، بیت توازن ،(اگر به کار روند) و بیت های توقف هستند.هر چند اگر بیت های داده

ذخیره شوند .

BaudRate سرعتی است که اطلاعات در کانال ارتباطی فرستاده می شود

در مفهوم پورت سریال باود 9600 این معنی را می دهد که پورت سریال قادر به ارسال ماکزیمم 9600 بیت

در هر ثانیه است .اگر واحد اطلاعاتی یک باود (یک بیت) باشد ،bitrate وbaudrate با هم یکی هستند اگر

یک باود به عنوان ده بیت داده شود ،(برای مثال ،هشت پالس بیتهای داده دو چارچوب بیتی) ،bitrate هنوز

9600 است ولی baudrate ، ۹۶۰۰/۱۰یعنی 960 است . شما همیشه  baudrate را بر حسب بیت در هر

 ثانیه پیکربندی می کنید .بنابرین در مثال بالا baudrate را 9600 تنظیم می کنید.

توجه: هم کامپیوتر و هم دستگاه جانبی باید در یک باود تنظیم شوند برای اینکه شما بخواهید خواندن

 و نوشتن موفقی داشته باشید .

برای این کار روی آیکون My computer کلیک راست کرده  Manage را انتخاب  می کنیم

 در صفحه باز شده Device Manager را انتخاب کرده و از سخت افزار های موجود در سمت

راست Ports(Com&Lpt) را انتخاب می کنیم و روی + کلیک می نماییم ، روی Communicaitions

 که مربوط به COM1 است دو بار کلیک کرده و در دیالوگ باز شده در تب Port Setting

 گزینه Bit per second را روی مقدار مورد نظر تنظیم می کنیم.

 

Baudrate های استاندارد شامل 110،300 ،600 ،1200 ،2400 ،4800 ،9600 ،14400

،19200 ،38400 ،57600115200 ،128000 و256000 بیت در هر ثانیه است .

 

 

ادامه نوشته

سرقت از matlabseven

دزدی جدید از وبلاگ من:

 

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

یعنی مطالب وبلاگ منو کپی کردن و در سایت خودشون آوردن.

این آقا شایان که ادعای matlab  کرده تمام مطالب وبلاگ منو تو یه سایت آورده که من در زیر

آدرس سایتو آوردم :

 

http://www.cloob.com/club/post/show/clubname/programmer/topicid/1255454

 

یارو یک سوتی خفن هم داده : کافیه شما در اون صفحه اسم وبلاگ منو سرچ کنید :

پس کافیه به اون سایت برین و دکمه های ctrl+F رو بزنین و سپس بنویسین: matlabseven

 

خودتون لطفا در مورد این کار نظر بدین

با تشکر: مدیر وبلاگ

کار با سریال پورت در مطلب

 


پورتهای سریال در MATLAB :


 


در رابطه ارتباط با پورتهای سریال MATLAB برنامه ها و دستورات متعدد و موثری دارد .این دستورات


 رابطه با پورت سریال را خیلی راحت می کند . نوشتن داده ، خواندن داده از پورت و. . . از کارهای عادی


برای این نرم افزار است اما بهتر است در مورد سریال پورت و پروتکل RS-232 چیزهایی را بدانیم که در


 زیر توضیحاتی را میدهم که امیدوارم مفید واقع شوند .


 


ارتباط سریال چیست؟


ارتباط سریال پروتکل سطح پایین مشترک برای ارتباط بین دو یا چند وسیله است که به صورت معمول یک


 وسیله کامپیوتر است و وسیله دیگر می تواند یک مودم ، پرینتر ، کامپیوتر دیگر و یا یک وسیله علمـــی از


 قبیل اسیلوسکوپ و یا فانکشن ژنراتور باشد.


به عنوان یک اشاره ، سریال پورت بایتهایی از اطلاعات را در روش سریال - یک بیت در زمان – ارسال


 و دریافت می کند.


در این ارتباط ، فرستنده و یا راه انداز ، بیت ها را به صورت پشت سر هم ارسال می کند. در ارتباط بیـن


 دو کامپیوتر ممکن است برای هر جهت خط مستقلی داشته باشیم یا اینکه بر روی یک خط در هر دو جهت


 داده ارسال شود.


وقتی که بیشتر از دو دستگاه به هم متصل شوند ، معمولا دارای یک مسیر مشترک بین آنها هستیم و پروتکل


 شبکه است که مشخص می کند کدام دستکاه اجازه ارسال دارد.


قسمت  RS-232هنوز برای کاربردهای عمومی استفاده های فراوان دارد. قسمت


RS-232  این مشخصات پورتهای سریال را معرفی می کند.


-  ماکزیمم سرعت انتقال بیت و طول کابلها-  

نامها ، مشخصات پورت سریال و توابع سیگنالها                                         پورتهای سریال


-  ارتباط های ماشینی و واگذاری پین ها                                               

                                                                                                     

ادامه نوشته

رسم نمودار جلسه پنجم :

نمودارهای قطبی :

 

دستور polar :

 

این تا بع داده ها را بر روی مختصات قطبی رسم می کند . شکل کلی این تابع به صورت زیر است :

 

Polar(theta,r)

 

که در آن  theta آرایه ای از زاویه ها بر حسب رادیان بوده و r آرایه ای از فواصل می باشد .

 

 

مثال :

 

تا بعr=1+cos(theta)  را رسم کنید :

 

>> theta=0:pi/20:2*pi;

>> r=1+cos(theta);

>> polar(theta,r)

 

نمودار قطبی

 

 

دستور bar :

 

این تابع یک نمودار میله ای عمودی تولید می کند :

 

 

>> x=-2.9:0.2:2.9;

>> y=exp(-x.*x);

>> bar(x,y)

 

نمودار میله ای 

ادامه نوشته

رسم نمودارقسمت چهارم

زیر نمودار ها :

 

دستور subplot :

 

در یک پنجره figure می توانیم بیش یک مجموعه از محورهای مختصات را رسم کنید .

دستور subplot(m,n,p) پنجره figure جاری را به m*n ناحیه تبدیل کند و ناحیه p را

به عنوان ناحیه فعال انتخاب می کند . زیر نمودارها به ترتیب از چپ به راست و بالا به

پایین شماره گذاری می شوند .

 

مثال :

 

نمودارهای sin(x) ، cos(x) ، sinh(x) و  cosh(x)را توسط زیر نمودار ها رسم

کنیـد ؟

 

 

x=-5:0.1:5;

y=sin(x);

z=cos(x);

y1=sinh(x);

z1=cosh(x);

subplot(2,2,1)

plot(x,y)

subplot(2,2,2)

plot(x,z)

subplot(2,2,3)

plot(x,y1)

subplot(2,2,4)

plot(x,z1)

 

زیر نمودار

 

 

ادامه نوشته