سلام .
برای اعداد تصادفی از دستور rand در متلب استفاده می شود .
البته این دستور اعداد تصادفی بین 0 تا 1 را تولید می کند اما با دستورات زیر می توانید اعداد تصادفی بین a تا b را تولید کنید :
کد:
a=2;
b=4;
A=a+(b-a)*rand(1)
کد متلب بالا یک عدد تصادفی بین 2 تا 4 تولید می کند . مثلا یک نتیجه برای این کد متلب به صورت زیر می باشد :
خوب حالا فرض کنید که بخواهید یک ماتریس با 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 شرط بگذارید و عناصر اول هر ردیف را چک کنید و اگر صفر بود عنصر دوم آن ردیف را هم به صفر تغییر بدهید .