سلام .
برای اعداد تصادفی از دستور rand در متلب استفاده می شود .
البته این دستور اعداد تصادفی بین 0 تا 1 را تولید می کند اما با دستورات زیر می توانید اعداد تصادفی بین a تا b را تولید کنید :
کد متلب بالا یک عدد تصادفی بین 2 تا 4 تولید می کند . مثلا یک نتیجه برای این کد متلب به صورت زیر می باشد :
خوب حالا فرض کنید که بخواهید یک ماتریس با 3 ردیف و 2 ستون داشته باشید که هر عنصر آن یک عدد تصادفی در بازه 2 تا 4 باشد ، برای این منظور باید درون پرانتز دستور rand ، تعداد ردیف و ستون را به صورت زیر مشخص کنید :
نتیجه یک بار اجرای کدهای متلب بالا به صورت زیر می باشد :
چنانچه بخواهید اعداد تصادفی اعشاری نبوده و حتما عدد صحیح باشند می توانید از دستور round استفاده کنید . البته دستورات دیگری نیز برای گرد کردن اعداد اعشاری وجود دارند که تفاوت هایی با هم دارند و می توانید در مبحث زیر تفاوت آنها را متوجه شوید :
گرد کردن اعداد اعشاری در متلب
مثلا فرض کنید یک ماتریس با 6 ردیف و 2 ستون می خواهیم که هر عنصر آن یک عدد صحیح تصادفی در بازه عددی 0 تا 10 باشد ، برای این منظور کدهای زیر را می نویسیم :
نتیجه یک بار اجرای کدهای متلب بالا به صورت زیر خواهد بود (چون اعداد تصادفی هستند ، هر بار اجرا نتایج متفاوتی را خواهد داد) :
در مورد اینکه گفتید بعضی سطرها صفر باشند ، دقیقا متوجه نشدم منظورتون چی هست اما اگه منظورتون اینه که اگه عنصر اول هر ردیف صفر باشد ، عنصر دوم آن ردیف نیز صفر شود ، باید ابتدا اعداد تصادفی را تولید کنید سپس با دستور if شرط بگذارید و عناصر اول هر ردیف را چک کنید و اگر صفر بود عنصر دوم آن ردیف را هم به صفر تغییر بدهید .
برای اعداد تصادفی از دستور rand در متلب استفاده می شود .
البته این دستور اعداد تصادفی بین 0 تا 1 را تولید می کند اما با دستورات زیر می توانید اعداد تصادفی بین a تا b را تولید کنید :
کد:
a=2;
b=4;
A=a+(b-a)*rand(1)
کد متلب بالا یک عدد تصادفی بین 2 تا 4 تولید می کند . مثلا یک نتیجه برای این کد متلب به صورت زیر می باشد :
کد:
A =
2.8724
خوب حالا فرض کنید که بخواهید یک ماتریس با 3 ردیف و 2 ستون داشته باشید که هر عنصر آن یک عدد تصادفی در بازه 2 تا 4 باشد ، برای این منظور باید درون پرانتز دستور rand ، تعداد ردیف و ستون را به صورت زیر مشخص کنید :
کد:
a=2;
b=4;
A=a+(b-a)*rand(3,2)
نتیجه یک بار اجرای کدهای متلب بالا به صورت زیر می باشد :
کد:
A =
2.7506 2.0767
3.1794 2.5314
3.9904 2.6044
چنانچه بخواهید اعداد تصادفی اعشاری نبوده و حتما عدد صحیح باشند می توانید از دستور round استفاده کنید . البته دستورات دیگری نیز برای گرد کردن اعداد اعشاری وجود دارند که تفاوت هایی با هم دارند و می توانید در مبحث زیر تفاوت آنها را متوجه شوید :
گرد کردن اعداد اعشاری در متلب
مثلا فرض کنید یک ماتریس با 6 ردیف و 2 ستون می خواهیم که هر عنصر آن یک عدد صحیح تصادفی در بازه عددی 0 تا 10 باشد ، برای این منظور کدهای زیر را می نویسیم :
کد:
a=0;
b=10;
A=round(a+(b-a)*rand(6,2))
نتیجه یک بار اجرای کدهای متلب بالا به صورت زیر خواهد بود (چون اعداد تصادفی هستند ، هر بار اجرا نتایج متفاوتی را خواهد داد) :
کد:
A =
6 8
1 2
3 4
1 8
7 2
8 7
در مورد اینکه گفتید بعضی سطرها صفر باشند ، دقیقا متوجه نشدم منظورتون چی هست اما اگه منظورتون اینه که اگه عنصر اول هر ردیف صفر باشد ، عنصر دوم آن ردیف نیز صفر شود ، باید ابتدا اعداد تصادفی را تولید کنید سپس با دستور if شرط بگذارید و عناصر اول هر ردیف را چک کنید و اگر صفر بود عنصر دوم آن ردیف را هم به صفر تغییر بدهید .
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.