موضوعات وبسایت : برنامه نویسی
سوالات امتحان آیین نامه رانندگی

حلقه if در متلب

نویسنده : نازنین رحمانی | زمان انتشار : 22 آذر 1400 ساعت 23:32

جهت انجام پروژه های دانشجویی و یا تمرین‌های برنامه نویسی رشته کامپیوتر میتوانید به آی دی تلگرام زیر پیام دهید

@AlirezaSepand



سوالات امتحان آیین نامه رانندگی

نویسنده علیرضا گلمکانی

شماره کلید 47

گزینه ها full_width.png

اجرای دستورات شرطی با دستور if در متلب

از دستور if در متلب، برای اجرای دستورات شرطی استفاده می شود. یعنی اینکه در ابتدا شرط یا شرط هایی توسط متلب چک می شود و اگر آن شرط یا شرط ها برآورده شده باشد، آنگاه متلب دستورات مشخص شده را اجرا خواهد کرد. به مثال زیر توجه کنید :

مثال

A=5
if A>=0
    B=A
end
if A<=0
    B=-A
end

نتیجه :


A =
 
     5
 
 
B =
 
     5

همان طور که مشاهده می کنید، از دو دستور if استفاده کرده ایم. هدف این است که مقدار B برابر قدرمطلق A باشد، بنابراین اگر A مساوی یا بزرگتر از صفر باشد، باید B را برابر A قرار دهیم و اگر A مساوی یا کوچکتر از صفر باشد، باید B را برابر A– قرار دهیم.

دقت کنید که در پایان دستور if ، حتما باید end نوشته شود تا نرم افزار متلب بداند که دستور if پایان یافته است.

دستور if به همراه else :

همان طور که گفتیم، زمانی که از دستور if در متلب استفاده می کنیم، متلب شرط یا شرط هایی را چک می کند و در صورت برآورده شدن آنها، دستورات را اجرا می کند. اما شاید بخواهیم به متلب اعلام کنیم که اگر شرط یا شرط ها برآورده نشدند، آنگاه چه دستوراتی را اجرا کند. در اینگونه موارد، دستور if را با else به کار می بریم. به مثال زیر توجه کنید :

مثال

در مثال قبلی، از دو دستور if استفاده کردیم، اما این بار همان مثال را تنها با یک دستور if می نویسیم :


A=5
if A>=0
    B=A
else
    B=-A
end

نتیجه :


A =
 
     5
 
 
B =
 
     5

هدف این بوده است که B برابر قدرمطلق A باشد، ابتدا متلب چک می کند که A مساوی یا بزرگتر از صفر هست یا نه، اگر باشد، آنگاه B را برابر A قرار می دهد و چون شرط برآورده شده است، دستورات نوشته شده برای else را نادیده می گیرد. اما اگر A مساوی یا بزرگتر از صفر نباشد، آنگاه متلب، تنها دستورات مربوط به else را اجرا می کند.

دستور if به همراه elseif :

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

مثال

همان مثال قبل را این بار با استفاده از elseif می نویسیم. تنها تفاوت این است که حالت خاص A=0 را جداگانه بررسی کرده ایم :


A=5
if A>0
    B=A
elseif A==0
    B=0
else
    B=-A
end

نتیجه :


A =
 
     5
 
 
B =
 
     5

دقت شود که برای چک کردن شرط تساوی، حتما باید از دو علامت تساوی به صورت == استفاده شود، زیرا علامت = در متلب، برای نسبت دادن مقدار به متغیرها در نظر گرفته شده است و بنابراین برای چک کردن شرط تساوی، مجبوریم از علامت == استفاده کنیم.

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

گزینه ها full_width.png

به اشتراک گذاری (Share) در شبکه های اجتماعی

نظرات 22 21 1

احمد

سلام دوستان یک سوال داشتم
آیا کسی هست کمک کنه
برنامه ای در متلب که 4 مقدار گرفته و مقایسه کند و اعداد را از بزرگ به کوچک مرتب کند

admin

میر ابوالفضل میر ابراهیمی

سلام و خسته نباشد
خواستم بدونم چطوری میشه به عدد شرط گذاشت
مثلا از 20 تا 100 عدد وارد کنیم اگه مثلا پایین 20 بود ارور بده بالای 100 هم بود ارور بده

admin

سلام.
کد متلب (MATLAB) زیر را می نویسیم :

کد پی‌اچ‌پی:

clear all
close all
clc

= input('please enter your number :   ')
if A>100
    error('please choose another number for A');
elseif A<20
    error('please choose another number for A');
end 

سه خط اول کدها برای عدم تداخل برنامه فعلی با برنامه های قبلی اجرا شده در متلب (MATLAB) می باشد.
دستور input برای دریافت ورودی از کاربر است (کلید شماره 88).
دستور error برای نمایش یک پیام در خروجی، به همان شکل متداول برای نمایش خطاها در نرم افزار متلب (MATLAB) به کار می رود (کلید شماره 165).
پس از اجرای کدها، یک عدد را وارد کرده و کلید enter از کیبورد را بزنید. اگر عدد از 100 بزرگتر و یا از 20 کوچکتر باشد، یک پیام خطا در خروجی نمایش داده می شود.

flower.gif

sanaz.hz

با سلام و ممنون از سایت خوبتون
من یک شرطی در محدودیت های مدلم دارم که نمیدونم چطور باید وارد کنم: ماتریس دو بعدی فاصله را به صورت d(i,j) تعریف کردم و یک مقدار حداکثر در نظر گرفتم به صورت dm=35 تعریف شده،حالا میخوام بگم که اگر که هر کدوم از درایه های ماتریس فاصله ی d(i,j) مقدارش از اون 35 بیشتر باشه، متغیر تصمیم مسئلم که سه بعدیه و دو بعدش همون i وj هستش x(i,j,r)  برابر با صفر بشه.
مثلا اگر درایه  d(2,3) مقدارش از 35 بیشتر هستش متغیر تصمیم x(2,3,r) برابر با صفر بشه یعنی متغیر تصمیم به ازای سطر2 و ستون 3 و همه ی r ها، صفر بشه
ممنون میشم راهنماییم کنید

Reza

سلام 
ممنون مطالب خوبتون
ی سوال داشتم میخاستم بدونم چ جوری میتونم انتگرال یگانه رو بدون استفاده از دستور آماده در مطلب اجرا کنم مثلا با دستور if،while،for
ممنون میشم کمک کنین

حمید

سلام کمک کنید لطفا ی برنامه میخواسم ک ۵ حالته باشه مثلا بین ۱۵ تا ۲۵ نرماله و بین ۲۵ تا ۳۰ چاق و بزرگتر از ۳۰ خیلی چاق و اونور بین ۱۵ تا ۱۰ لاغر و کوچکتر از ۱۰ خبلی لاغر که ۵ حالته میشه با  if else else if باشه لطفا پاسخگو باشین ممنون میشم

رضا

سلام.ببخشید من در برنامم دستور if  دارم که وقتی شرط if  برقرار میشه دستورات داخل if انجام نمیشه!!!!!!نمیدونم مشکلش چیه؟//ممنون میشم راهنماییم کنید.

admin

سلام.
توصیه می شود که در ابتدای کدهای داخل if ، یک دستور چاپ متن در خروجی (مثل دستور disp) را اجرا کنید (می توانید بقیه دستورات درون if را به حالت توضیح (Comment) در بیاورید تا فعلا اجرا نشوند) و ببینید که متن در خروجی نمایش داده می شود یا خیر. تا با این روش، متوجه شوید که اصلا شرط if صادق می باشد یا خیر. مثل کد زیر :

اگر متن در خروجی نمایش داده نشد که یعنی شرط صادق نیست و بنابراین عدم اجرای کدهای درون if ، صحیح می باشد. اما اگر متن در خروجی نمایش داده شد، پس احتمالا آن کدهای درون if که اجرا نمی شوند، مشکل دارند و باید آنها را بررسی کنید.
برای بررسی دقیق تر کدها، سعی کنید که نتایج مرحله به مرحله اجرای کدها را در خروجی متلب (MATLAB) نمایش دهید، تا با دیدن نتایج متوجه شوید که در کدام مرحله، نتایج مورد نظرتان به دست نمی آید.
همچنین در متلب (MATLAB) اگر علامت ; در انتهای دستورات ذکر شود، نتیجه در خروجی نمایش داده نمی شود (به جز برخی دستورات خاص). بنابراین علامت ; را از انتهای دستورات بردارید تا نتایج آنها را در خروجی ببینید.

flower.gif

Sepideh

سلام.من میخوام یه کدی رو بزنم و درانتهای کد با بدست آوردن خطا شرط خطا رو اعمال کنم و درصورت نیاز به اول کد برگردم .اینطور که معلومه متلب دستور do/while رو نداره .دراین صورت چطور میتونم برگردم اول کد؟

admin

سلام.
برای ساخت حلقه، با استفاده از دستور while در متلب (MATLAB)، کلید زیر را بخوانید :

کلید شماره 26095

flower.gif

مژگان عارفی

سلام.من یک بردار دارم.میخوام داخل این بردار درایه هایی که مقدارشون صفر هست را پیدا کنم و حذفشون کنم و یک برداری داشته باشم بدون مقادیر صفر.با دستورwhileرفتم اما ارور میده.کسی میتونه کمکم کنه؟؟فووورییییی بی زحمت huh.gifundecided.gif

admin

سلام.
از کد متلب (MATLAB) زیر استفاده نمایید :

کد پی‌اچ‌پی:

clear all
close all
clc

= [3 0 2; 0 6 0]
A(A==0) = [] 

نتیجه اجرای کد متلب (MATLAB) بالا :

کد پی‌اچ‌پی:

A =    3     0     2
     0     6     0

=    3     6     2 

flower.gif

محمد

با سلام
مجموعه ای از داده ها دارم که بعد از مرتب کردن با استفاده از دستور sort می خوام داده های مرتب شده را به 3 قسمت براساس میانگین تفکیک کند(30 درصد داده ها بیش از میانگین، 40 درصد وسط و 30 درصد پایین تر از میانگین)

firm                           price
 1200                           A
2000                            B
5000                            C
3500                            D
9000                             E
7000                             F
6300                             G
5400                              H
1700                               I
8900                              J

با تشکر

mahdi

سلام آقا من چطور کد بنویسم که از تمام درایه های ماتریس فاکتوریل بگیره؟

admin

کد پی‌اچ‌پی:

clear all
close all
clc

= [2 4; 5 7]
kelidestan = factorial(A) 

نتیجه اجرای کد متلب (MATLAB) بالا :

کد پی‌اچ‌پی:

A =     2     4
     5     7

kelidestan 

=           2          24
         120        5040 

flower.gif

سارا

سلام خسته نباشید.. میخوام یه انتگرال به روش  metropolice حل کنم چطوری میشه

shadi

سلام خسته نباشید 
از چه دستوری استفاده کنم که مثلا در صورت وجود یک شرط خاص  20 خط بعدی را نخوان ولی خط مثلا 21 را بخوان

مینا

سلام ببخشید چجوری میشه با 3 عدد یک مثلث ساخت با دستور if

Zarrin

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

('Type=('Choise yarn Type: (1)A  (2)B  (3)C

 (YarnType=inputdlg(Type

 if YarnType==1

'FolderType=' C:\Users\User\Documents\MATLAB\Type1        

'FolderType=' C:\Users\User\Documents\MATLAB\Type2          

elseif YarnType==3

'FolderType=' C:\Users\User\Documents\MATLAB\Type3         

Undefined function 'eq' for input arguments of type 'cell'.

محمدحسین

سلام دوستان شبتون بخیر 
دوستان میخوام یه ارایه از کاربر بگیرم (مثلا نمره) بعد اعداد بین 5تا 8 رو به 9 تبدیل کنه؟ این چجوری میشه؟

ارسال نظر جدید (بدون نیاز به عضو بودن در وب سایت)

آیا این مطلب برای شما مفید بود؟


منبع: www.kelidestan.com



ارسال نظر

نام


ایمیل


نظر