یکی از سوالاتی که در اکثر کلاس ها و دوره های آموزشی دانشجویان عزیز نیاز به یادگیری آن دارند، نحوه تولید عدد تصادفی در در نرم افزار متلب می باشد. در متلب به روشهای مختلفی می توان اعداد تصادفی تولید کرد: rand این تابع یک عدد تصادفی بین صفر و یک تولید می کند. مثال:
rand()
0.35
هر بار که این دستور را اجرا کنید ، یک عدد متفاوت به ما می دهد. خوب سوالی که مطرح می شود این است که اگر نخواهیم عدد تولیدی بین صفر و یک باشد و در بازه [ a,b ] قرار بگیرد، باید چه کار کنیم ؟
y = a + (b – a ) * rand()
با دستور بالا بازه تولید عدد تصادفی را تعیین می کنیم. در مثالهای بالا ، یک عدد تصادفی تولید شد. اگر بخواهیم یک ماتریس تولید شود باید چه کار کنیم ؟ اگر بخواهید یک ماتریس با 10 ستون و 15 سطر عدد تصادفی بین صفر و یک داشته باشید کافی است بنویسید :
z = rand(15 , 10 )
ماتریس z دارای 15 سطر و 10 ستون می باشد و تمامی اعداد آن بین صفر و یک می باشند. برای تغییر بازه تولید اعداد ماتریس z کافی است که از روش بالا استفاده کنید.
z = a + (b – a ) * rand( 15 , 10 )
randi این تابع عدد صحیح تصادفی تولید می کند. عدد صحیحی به عدد می گویند که اعشار ندارد مثل 6 یا 25 این دستور برای کار کردن حتما باید یک ورودی به آن بدهیم و آن حداکثر عدد صحیح تصادفی می باشد که می تواند تولید کند. مثال
randi(6)
عدد تصادفی صحیح از 1 تا 6 تولید می کند مثلا 4
randi(28)
عدد تصادفی صحیح از 1 تا 28 تولید می کند مثلا 23
randperm
randperm(6)
[3 2 6 4 1 5]
این تابع وقتی که بخواهید اندیس های تصادفی تولید کنید بسیار مفید می باشد. یعنی شما یک بردار داده ورودی به اندازه ۱۰۰ نمونه دارید و می خواهید این ۱۰۰ نمونه را تصادفی انتخاب کنیدو با randperm (100) اندیس های تصادفی تولید کنید و سپس به عنوان اندیس بر روی ماتریس داده ورودی قرار دهید. بدین صورت شما نمونه های ورودی را تصادفی انتخاب خواهید کرد.
randn
تولید عدد تصادفی بر اساس توزیع گایوسین یا نویز سفید
نکته: خروجی می تواند بین -inf تا +inf باشد.
R = randn(3,4)
R =
1.1650 0.3516 0.0591 0.8717
0.6268 -0.6965 1.7971 -1.4462
0.0751 1.6961 0.2641 -0.7012
سلام
برای تولید یه تعداد عدد رندم مشخص بین یک بازه ی مشخص هم دستوری وجود دارد؟ یعنی مثلا 4 عدد رندم که مقدارشان بین (1و5) باشد.
(5 3 3 1)
سلام
دستور
randi
عدد صحیح تصادفی تولید می کند.
مثال
randi(10,1,5)
پنج عدد صحیح تصادفی بین 1 تا 10 تولید می کند. ماتریس خروجی 1 در 5 است که می شودپنج عدد.
برای بازی تتریس میخوام هر کدوم از شکلایی که میان پایین به صورت رندوم رنگ و شکل متفاتی داشته باشن،میشه راهنماییم کنید؟خیلی ممنون
اول بايد شكل ها و رنگ ها را در يك آرايه يا تصوير تعريف كنيد
و سپس يك توليد كننده عدد تصادفي داشته باشيد و براي شما يك عدد تصادفي توليد كند. سپس عدد تصادفي توليدي را متناظر با يكي از خانه هاي آرايه در نظر بگيريد. بدين ترتيب هر بار كه اجرا مي كنيد شكل و رنگي متفاوت خواهيد داشت.
برای ایجاد هزار عدد تصادفی بین ۵و۷ چجوری باید بنویسم?
kheili hal aliii mamnoonn
سلام میشه راهنماییم کنید؟
میخوام یه ماتریس از اعداد تصادفی بسازم که جمع سطر و ستونش یک بشه.چطوری میتونم این کارو کنم ؟
سلام
n =5
r = rand(n,n)
r = r / sum (r (:))
ببخشید من این دستورو میزنم اما ارور میده…
چه خطایی می دهد.
کپی بگیرید از خطا و قرار دهید.
به (:) فلش میزنه مینویسه error: unexpected matlab operator
r=r/sum(r(:))
توجه فرمایید
این دستور به صورت
r = r/sum(r
(:))
چون در تایپ فارسی مکان پرانتزها آمده اول خط دستور اشتباه نمایش داده شده. این قسمت (:)) باید آخر دستور قرار گیرد.
اهان بله متوجه شدم خیلی ممنون
سلام و ممنون از راهنماییاتون
من چطور میتوانم یک ماتریس اعدا تصادفی با قطر اصلی صفر ایجاد کنم؟
سلام
کاری نداره ماتریس که تولید شد.
بعدش یک حلقه بنویسید هر جا i , j با هم برابر بودند مقدار خروجی را صفر بگذارید.
البته ممکنه شما بتونید راه حل دیگری معرفی کنید.
ممنون اما اینکارو با دستور diog میخوام انجام بدم، راهی هست؟
سلام
به نظرم نمیشه
سلام. خیلی ممنون از سایت مفیدتون
سلام خسته نباشید
چطوری تو بازه [1,1-] اعداد تصادفی تولید کنم؟
سلام
a+(b-a)*rand
برای تولید عدد تصادفی بین a و b استفاده می شود.
برای توضیح بیشتر به فیلم آموزشی سیر تا پیاز متلب مراجعه فرمایید.
سلام فرمولی برای ایجاد یک ماتریس تصادفی از دل یک ماتریس دیگر وجود داره ؟
سلام
فرمول نمیخواهد.
فرض کن ماتریس اولیه نامش
A
باشد. و ماتریس جدید
B
باشد.
مقدار خانه های ماتریس جدید را از ماتریس A پر شود.
کافی است اندیس های انتخاب خانه ها از ماتریس A به صورت تصادفی باشد.
اصل قضیه اینه که من یه ماتریس 10 در 700 رو با روش min-max نرمال سازی کردم از درون این یک ماتریس تصادفی 10 در 40 باید بسازم تقریبا میشه گفت هیچ راهنمایی در نت پیدا نکردم
دوست عزیز من هم همین موضوع را گفتم. در حالتی که تعداد سطرهای شما یکسان است کار بسیار ساده است.
کافی است 40 تا عدد تصادفی صحیح با randint بین 1 تا 700 تولید کنی و به عنوان اندیس ستون استفاده کنی و بریزی در ماتریس نهایی.
منظورتون از اندیس ستون متوجه نمیشم 🙁
تازه کارم با متلب
A(1,2
به 1 و 2 اندیس می گویند.
سلام
من میخوام 5 تا نود را به صورت تصادفی در یک مربع 5*5 قرار بدم و مختصات x و y اونها را به دست بیارم
میشه راهنماییم کنید؟ ممنون
سلام
شما باید مکان های تصادفی تولید کنید بین 1 تا 5 و سپس نودها را در اونها بریزید.
مثلا
node =[20 33
12 44
67 88
99 33
21 78]
فرض کن اینها پنج تا نود من هستن.
حالا فرض کن ماتریس 5 در 5 نهایی هم اسمش B هست :
for i=1:5
B(i,:) = randi(5)
end
سلام
با سلام
چطور اعداد از صفر تا e-10 تولید کنم؟
ممنون
با سلام
سوال ساده اي است. دستور زير
0:1e-20:1e-10
سلام خسته نباشید من برای شبیه سازی از اعداد تصادفی استفاده میکنم و در هر بار شبیه سازی از نه تا عدد تصادفی استفاده میکنم. سوال من اینه که اگه بخوام مثلا صد بار شبیه سازی کنم میخوام 50 بار عدد تصادفی تولید بشه و 50 بار دیگه از RAND-1 استفاده کنم چیکار باید بکنم؟
ممنون میشم کسی کمکم کنه
اینم از برنامه ای که نوشتم برا تولید اعداد تصادفی
u=zeros(9;n);
for i=1:n
u(1;i)=rand
u(2,i)=rand
.
.
.
u(9,i)=rand;
end
سلام میخوام یه بردارتصادفی شامل ۱۰۰۰عدد از۱تا۶بادستورrandnایجادکنم میشه راهنمایی کنید یاجوابو ایمیل کنید برام ممنون میشم
تشکر که راهنمایی کردید ولی بادستورrandnچطور تولید میشه؟
فرقی نداره این دستور هم شبیه همون rand هست فقط اعدادش بر اساس توزیع نرمال تولید می شوند.
اگه منظورتون اینه به جای randi توی دستور،randnبذارم این کارو میکنم ولی خطا میده میگه باید ورودی یه اسکالرباشه .من دستورو اینحورنوشتم:
(X=randi([1 6],1,1000
اماوقتی بهجای randi،
میذارمrandnخطا میده نمیدونم چکارکنم
مشخص است که خطا می دهد. نحوه ورودی دادن randi و randn فرق می کند.
با سلام
من میخواهم یکه ماتریس تصادفی 9 در 3 را به تعداد 500 عدد تولید کنم چکار باید انجام دهم؟
ممنون از راهنماییتون
سلام
خیلی ساده است. دستورات تصادفی متلب را میشه هم برای بردار و هم ماتریس استفاده کرد.
سلام ببخشید منبادستور randi. …
1000تا عددی تصادفی که یا صفرن یا یکن تولیید کردم بعد اگه بخوام احتمال اینکه از 1000تا چند بار یک اومده رو به دست بیارم تو متلب باید از چی استفاده کنم یا اینکه چجوری بنویسمش
سلام
تعداد 1 را بشمار. تعدادش را بر 1000 تقسیم کن .
سلام و ممنون از سایت خوبتون
من میخوام یک ماتریس سه بعدی تولید کنم که در هر سطرش تنها یک عدد 1 وجود داشته باشه و مابقی درایه های اون سطر 0 باشه. میشه راهنماییم کنید
سلام
شما اول یک آرایه 3 بعدی تعریف کنید که همه خانه های آن صفر باشد :
A = zeros(4,5,3
این ماتریس 4 سطر و 5 ستون و 3 بعد دارد.
چون 3 بعد دارد لذا دارای 12 سطر در مجموع می باشد.
شما می بایست یک حلقه بنویسد و هر سطر آنرا اندیس دهی کنید و یکی از ستونهای آنرا به صورت تصادفی 1 کنید.
A(i,r,j
i از 1 تا 4 تغییر می کند
j از 1 تا 3 تغییر می کند
r یک عدد تصادفی صحیح بین 1 تا 5 می باشد.
سلام.
سال نو مبارک 🙂
برای تولید یه سیگنال تصادفی با 20 نمونه چطور از rand استفاده کنم؟
سلام
چطور می توان تعداد M عدد تصادفی مثبت با مقدار mu و ave مشخص در متلب تولید کرد؟مثلا اگر از دستور زیر استفاده کنم اعداد تصادفی تولید می شود اما بعضی از آنها منفی است.
R=random(‘norm’,0.25*10^-9,1,M,1);
ممنونم
سلام
چطور می توان تعداد M عدد تصادفی مثبت با مقدار mu و ave مشخص در متلب تولید کرد؟مثلا اگر از دستور زیر استفاده کنم اعداد تصادفی تولید می شود اما بعضی از آنها منفی است.
R=random(‘norm’,0.25*10^-9,1,M,1);
ممنونم
سلام
قدر مطلقش بگیرید با دستور abs
سلام میخام عدد تصادفی تولید کنم که حد بالا و پایینش دو تا بردار باشه.
مثلا بین A و b باشه:
a=[1 1 1 1 ]
b=[7 8 9 9 ]
سلام
randint در یک حلقه for استفاده کن.
با سلام
سه تا ماتريس ١٠*٣ با اعداد تصافي ساختم حاصل اين عبارت رو چطور بايد در متلب حساب كنم
abc£££
منظور از اون علامت سيگما است سه تا سيگما بايد محاسبه كنيم
aوbوc هم ماتريس ها هستن
سلام
می تونید با سه حلقه for تو در تو این کار انجام دهید.
یا از تکنیک های محاسبات عددی استفاده کنید.
سلام.چطور میتونم اعداد تصادفی با میانگین و واریانس دلخواه با دستور randn تولید کنم؟
سلام
کار این دستور randn همین هست.
n آخرش بر می گردد به توزیع نرمال.
x = .6 + sqrt(0.1) * randn(5)
دستور باالا توزیع نرمال با میانگین 0.6 و واریانس 0.1 تولید می کند.
سلام . من می خواهم یک ماتریس 124* 124 تولید کنم از اعداد 1 تا 124 که در هر سطر اعداد غیر تکراری داشته باشد.
for tt=1:124
Out(tt,:)=randi(124,[1,124])
end
لطفا پاسخ بدین
می خوام 30 درصد از سطر های یک ماتریس رو به صورت تصادفی انتخاب کنم
چیکار باید کنم؟
سلام
شما می توانید طول ماتریس را بدست بیاری با دستور size یا length یا …
L
سپس 30 درصد را درش ضرب کنی چون ممکنه اعشاری بشه روندش کنی
L30
سپس با دستور randi یک بردار با طول L30 تولید کنی که اعدادش بین 1 تا L باشه.
A
این بردار سطرهای انتخاب شده به صورت تصادفی هستند.
سلام
دستور randint چیه
من استفاده میکنم جواب نمیده
(a= randint(1,2,5
سلام
تولید اعداد تصادفی integer
randint(m,n,q)
یعنی یک ماتریس با تعداد سطر m و تعداد ستون n که اعدادش بین 1 تا q هستند.
سلام من میخوام دویست نقطه تصادفی از توزیع نرمالی با پارامترهای میانگین صفر و ماتریس کوریانسی که دارم ایجاد کنم میشه راهنماییم کنید؟
سلام
تابع randn
سلام من میخوام بین صفر تا ده، هزار تا دادهی نویزی با توزیع مساوی تولید کنم چه دستوری باید استفاده کنم؟
سلام
تابع rand
سلام وقتتون به خیر
ببخشید من میخوام ببینم تعداد دفعات مختلف تاس بین 1تا6 باید از چه دستوری در متلب استفاده کنم.
باتشکر
سلام
متوجه سوال شما نشدم لطفا بیشتر توضی دهید.
سلام
و ممنون از سايت خوبتون
توليد اعداد تصادفي با ماكسيمم و مينيمم مشخص يا (بزرگتر از يك كمتر از x) چه طور ننوشته ميشه؟
سلام
من میخوام برنامه ای بنویسم که بااستفاده از توزیع یکنواخت یک بردار باتوزیع نرمال تولید کنه
کسی میتونه راهنمایی کنه؟
سلام خسته نباشید من می خواهم متلب عدد تصادفی مثلا بر اساس تابع توزیع نرمال تولید کند ولی بین بازه صفر و یک چه دستوری را باید بنویسم.
دستوری که من در متلب نوشتم به صورت زیر است:
for j = 1:N % Start of Monte Carlo loop
R_mont4(j,1)= normrnd(0.7318,0.15606); % Normal distribution of R
end
ولی اعداد تصادفی تولیدی در بازه صفر و یک نیست!!!!
ممنون میشم راهنماییم کنید.
سلام
normrand بر اساس توزیع احتمال نرمال یا گایوسین اعداد تصادفی تولید می کند و همانطور که میدانید اعداد تولیدی بر اساس توزیع نرمال می توانند هر عددی باشند.
دستور rand فقط بین ۰ و ۱ تولید می کند.
سلام من یک ماتریس 5*5 با اعداد بین 1 تا 100 که اعداد بزرگتر از 50 را در یک نمودار واحد نشون بده رو میخام
سلام یک ماتریس تصادفی با ۵۰ عضو ایجادبشه که۲۶عنصربصورت تصادفی ازآن انتخاب کند
سلام
من میخوام یک تعداد کره و چند تا لوله رو که دارای شعاع و طول هستند به صورت رندوم درون یک مکعب جایگذاری کنم میشه لطفا کمکم کنید با تشکر
سلام. من میخوام 500 تا عدد 1 و 2 تولید کنم به طوری احتمال اومدن عدد 1 برابر 0.2 و احتمال آمدن عدد 2 برابر 0.8 باشه.باید چکار کنم؟لطفا راهنماییم کنید
سلام وقت بخیر
چجور میتونم n عدد بین صفر ویک انتخاب کنم که تکراری نباشن و به ترتیب (از کوچک به بزرگ ) باشن ؟
سلام
اول rand
بعد
sort
یک بردار رندوم 100 تایی تولید کنید که 50 درایه اول کاملا تصادفی بین یک و دو باشد و 50 درایه دوم به صورت تصادفی بین 4 و 5 باشد.
سلام این رو چطور حل کنم
یک بردار رندوم 100 تایی تولید کنید که 50 درایه اول کاملا تصادفی بین یک و دو باشد و 50 درایه دوم به صورت تصادفی بین 4 و 5 باشد.
سلام
چطور میتونم ی ماتریس با اعداد رندوم بین صفر و یک تولید کنم با سطر و ستون رندوم؟؟
ممنون
کافی است دو متغییر تعریف کنید که تعداد سطر و ستون هم عدد تصادفی صحیح باشد.
متلب برای تولید اعداد تصادفی تابع رند از چه الگوریتمی استفاده میکند؟
سلام
به راهنمای متلب قسمت rng مراجعه کنید/
https://www.mathworks.com/help/matlab/ref/rng.html
‘twister’
Mersenne Twister
‘simdTwister’
SIMD-oriented Fast Mersenne Twister
‘combRecursive’
Combined multiple recursive
‘multFibonacci’
Multiplicative Lagged Fibonacci
‘philox’
Philox 4×32 generator with 10 rounds
‘threefry’
Threefry 4×64 generator with 20 rounds
سلام وقت بخیر
چطور میتونم 38 تا از درایه های یک ماتریس 9*9 رو با اعداد تصادفی بین 1 تا 9 پر کنم بطوری که این 38 درایه به طور رندم در ماتریس انتخاب بشن.
لطفا راهنماییم کنید.
سلام من میخوام یک ماتریس 50 در 200 با درایه های بین 50 تا 100 بصورت رندوم تولید کنم ولی مشکل اینجاست که اعداد باید همه به صورت صعودی باشند و اختلاف خیلی کم یعنی همشون آروم و مثل هم تغیر کنن.باید چکار کنم؟