اجرای دستورات شرطی با دستور if در متلب
از دستور if در متلب، برای اجرای دستورات شرطی استفاده می شود. یعنی اینکه در ابتدا شرط یا شرط هایی توسط متلب چک می شود و اگر آن شرط یا شرط ها برآورده شده باشد، آنگاه متلب دستورات مشخص شده را اجرا خواهد کرد. به مثال زیر توجه کنید :
if A>=0
B=A
end
if A<=0
B=-A
end
نتیجه :
5
B =
5
همان طور که مشاهده می کنید، از دو دستور if استفاده کرده ایم. هدف این است که مقدار B برابر قدرمطلق A باشد، بنابراین اگر A مساوی یا بزرگتر از صفر باشد، باید B را برابر A قرار دهیم و اگر A مساوی یا کوچکتر از صفر باشد، باید B را برابر A– قرار دهیم.
دقت کنید که در پایان دستور if ، حتما باید end نوشته شود تا نرم افزار متلب بداند که دستور if پایان یافته است.
دستور if به همراه else :
همان طور که گفتیم، زمانی که از دستور if در متلب استفاده می کنیم، متلب شرط یا شرط هایی را چک می کند و در صورت برآورده شدن آنها، دستورات را اجرا می کند. اما شاید بخواهیم به متلب اعلام کنیم که اگر شرط یا شرط ها برآورده نشدند، آنگاه چه دستوراتی را اجرا کند. در اینگونه موارد، دستور if را با else به کار می بریم. به مثال زیر توجه کنید :
در مثال قبلی، از دو دستور if استفاده کردیم، اما این بار همان مثال را تنها با یک دستور if می نویسیم :
if A>=0
B=A
else
B=-A
end
نتیجه :
5
B =
5
هدف این بوده است که B برابر قدرمطلق A باشد، ابتدا متلب چک می کند که A مساوی یا بزرگتر از صفر هست یا نه، اگر باشد، آنگاه B را برابر A قرار می دهد و چون شرط برآورده شده است، دستورات نوشته شده برای else را نادیده می گیرد. اما اگر A مساوی یا بزرگتر از صفر نباشد، آنگاه متلب، تنها دستورات مربوط به else را اجرا می کند.
دستور if به همراه elseif :
گاهی نیاز داریم که چندین شرط به صورت پی در پی چک شوند، اگر اولین شرط صحیح بود، دستورات مربوط به آن اجرا شوند و دستورات مربوط به سایر شرط ها نادیده گرفته شوند، اما اگر شرط اول برآورده نشده بود، شرط دوم چک شود و در صورت برآورده شدن شرط دوم، دستورات مربوط به آن اجرا شود و دستورات مربوط به شرط های باقیمانده نادیده گرفته شود، در صورت برآورده نشدن شرط دوم، آنگاه شرط سوم چک شود و همین طور تا آخر. در اینگونه موارد باید از دستور if به همراه elseif استفاده کنیم. به مثال زیر توجه کنید :
همان مثال قبل را این بار با استفاده از elseif می نویسیم. تنها تفاوت این است که حالت خاص A=0 را جداگانه بررسی کرده ایم :
if A>0
B=A
elseif A==0
B=0
else
B=-A
end
نتیجه :
5
B =
5
دقت شود که برای چک کردن شرط تساوی، حتما باید از دو علامت تساوی به صورت == استفاده شود، زیرا علامت = در متلب، برای نسبت دادن مقدار به متغیرها در نظر گرفته شده است و بنابراین برای چک کردن شرط تساوی، مجبوریم از علامت == استفاده کنیم.
سلام دوستان یک سوال داشتم
آیا کسی هست کمک کنه
برنامه ای در متلب که 4 مقدار گرفته و مقایسه کند و اعداد را از بزرگ به کوچک مرتب کند
سلام.
از دستور sort در متلب (MATLAB) استفاده کنید :
سلام و خسته نباشد
خواستم بدونم چطوری میشه به عدد شرط گذاشت
مثلا از 20 تا 100 عدد وارد کنیم اگه مثلا پایین 20 بود ارور بده بالای 100 هم بود ارور بده
سلام.
کد متلب (MATLAB) زیر را می نویسیم :
سه خط اول کدها برای عدم تداخل برنامه فعلی با برنامه های قبلی اجرا شده در متلب (MATLAB) می باشد.
دستور input برای دریافت ورودی از کاربر است ().
دستور error برای نمایش یک پیام در خروجی، به همان شکل متداول برای نمایش خطاها در نرم افزار متلب (MATLAB) به کار می رود ().
پس از اجرای کدها، یک عدد را وارد کرده و کلید enter از کیبورد را بزنید. اگر عدد از 100 بزرگتر و یا از 20 کوچکتر باشد، یک پیام خطا در خروجی نمایش داده می شود.
با سلام و ممنون از سایت خوبتون
من یک شرطی در محدودیت های مدلم دارم که نمیدونم چطور باید وارد کنم: ماتریس دو بعدی فاصله را به صورت 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 ها، صفر بشه
ممنون میشم راهنماییم کنید
سلام
ممنون مطالب خوبتون
ی سوال داشتم میخاستم بدونم چ جوری میتونم انتگرال یگانه رو بدون استفاده از دستور آماده در مطلب اجرا کنم مثلا با دستور if،while،for
ممنون میشم کمک کنین
سلام کمک کنید لطفا ی برنامه میخواسم ک ۵ حالته باشه مثلا بین ۱۵ تا ۲۵ نرماله و بین ۲۵ تا ۳۰ چاق و بزرگتر از ۳۰ خیلی چاق و اونور بین ۱۵ تا ۱۰ لاغر و کوچکتر از ۱۰ خبلی لاغر که ۵ حالته میشه با if else else if باشه لطفا پاسخگو باشین ممنون میشم
سلام.ببخشید من در برنامم دستور if دارم که وقتی شرط if برقرار میشه دستورات داخل if انجام نمیشه!!!!!!نمیدونم مشکلش چیه؟//ممنون میشم راهنماییم کنید.
سلام.
توصیه می شود که در ابتدای کدهای داخل if ، یک دستور چاپ متن در خروجی (مثل دستور disp) را اجرا کنید (می توانید بقیه دستورات درون if را به حالت توضیح (Comment) در بیاورید تا فعلا اجرا نشوند) و ببینید که متن در خروجی نمایش داده می شود یا خیر. تا با این روش، متوجه شوید که اصلا شرط if صادق می باشد یا خیر. مثل کد زیر :
اگر متن در خروجی نمایش داده نشد که یعنی شرط صادق نیست و بنابراین عدم اجرای کدهای درون if ، صحیح می باشد. اما اگر متن در خروجی نمایش داده شد، پس احتمالا آن کدهای درون if که اجرا نمی شوند، مشکل دارند و باید آنها را بررسی کنید.
برای بررسی دقیق تر کدها، سعی کنید که نتایج مرحله به مرحله اجرای کدها را در خروجی متلب (MATLAB) نمایش دهید، تا با دیدن نتایج متوجه شوید که در کدام مرحله، نتایج مورد نظرتان به دست نمی آید.
همچنین در متلب (MATLAB) اگر علامت ; در انتهای دستورات ذکر شود، نتیجه در خروجی نمایش داده نمی شود (به جز برخی دستورات خاص). بنابراین علامت ; را از انتهای دستورات بردارید تا نتایج آنها را در خروجی ببینید.
سلام.من میخوام یه کدی رو بزنم و درانتهای کد با بدست آوردن خطا شرط خطا رو اعمال کنم و درصورت نیاز به اول کد برگردم .اینطور که معلومه متلب دستور do/while رو نداره .دراین صورت چطور میتونم برگردم اول کد؟
سلام.
برای ساخت حلقه، با استفاده از دستور while در متلب (MATLAB)، کلید زیر را بخوانید :
سلام.من یک بردار دارم.میخوام داخل این بردار درایه هایی که مقدارشون صفر هست را پیدا کنم و حذفشون کنم و یک برداری داشته باشم بدون مقادیر صفر.با دستورwhileرفتم اما ارور میده.کسی میتونه کمکم کنه؟؟فووورییییی بی زحمت
سلام.
از کد متلب (MATLAB) زیر استفاده نمایید :
نتیجه اجرای کد متلب (MATLAB) بالا :
با سلام
مجموعه ای از داده ها دارم که بعد از مرتب کردن با استفاده از دستور 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
با تشکر
سلام آقا من چطور کد بنویسم که از تمام درایه های ماتریس فاکتوریل بگیره؟
سلام.
کد متلب (MATLAB) :
نتیجه اجرای کد متلب (MATLAB) بالا :
سلام خسته نباشید.. میخوام یه انتگرال به روش metropolice حل کنم چطوری میشه
سلام خسته نباشید
از چه دستوری استفاده کنم که مثلا در صورت وجود یک شرط خاص 20 خط بعدی را نخوان ولی خط مثلا 21 را بخوان
سلام ببخشید چجوری میشه با 3 عدد یک مثلث ساخت با دستور if
سلام دوستان. میشه لطف کنید بگید مشکل کد زیر چیه؟
ارور زیر رو میدهد:
سلام دوستان شبتون بخیر
دوستان میخوام یه ارایه از کاربر بگیرم (مثلا نمره) بعد اعداد بین 5تا 8 رو به 9 تبدیل کنه؟ این چجوری میشه؟
سلام
اگر بخواهیم یک شرط بنویسیم که اگر هرکدام از درایه های یک ماتریس مورد نظر در یک بازه ی عددی مورد نظر بود همان درایه ی ماتریس را نگهدار و در غیر این صورت اون درایه را صفر به ما بده.چه دستوری می تونیم بنویسم.