ورود

View Full Version : ساخت ماتریس با اعداد 0 و 1 به صورت تصادفی با احتمال 0.5



majikam
چهارشنبه 05 آبان 1395, 16:41 عصر
سلام
برای ساخت یک ماتریس که مقادیرش 0 و 1 باشه و این مقادیر به صورت تصادفی و با احتمال 0.5 باشه چکار باید کرد؟؟؟

با تشکر

mb1372
چهارشنبه 05 آبان 1395, 18:25 عصر
سلام
با استفاده از دستور
rand(m,n) یک ماتریس m در n تصادفی ایجاد میشه که اعدادش بین 0 تا 1 هستند. این تابع اعداد تصادفی رو با توزیع احتمال یکنواخت تولید میکنه. یعنی اگه اعداد این بازه به 0 یا 1 تبدیل بشن میشه همون احتمال 0.5 که دنبالش هستید. البته باید توجه کنید که ممکنه تمام اعداد ماتریس 1 در بیاد ولی اگه همچنین کاری بشه کاملا اتفاقی بوده.

کد زیر کار مورد نظر شما رو انجام میده:

m=3;n=2;
a=rand(m,n)
b=ones(m,n);
for i=1:m
for j=1:n
if a(i,j)>=0 & a(i,j)<0.5
b(i,j)=0;
end
end
end
b

majikam
چهارشنبه 05 آبان 1395, 20:58 عصر
سلام
با استفاده از دستور
rand(m,n) یک ماتریس m در n تصادفی ایجاد میشه که اعدادش بین 0 تا 1 هستند. این تابع اعداد تصادفی رو با توزیع احتمال یکنواخت تولید میکنه. یعنی اگه اعداد این بازه به 0 یا 1 تبدیل بشن میشه همون احتمال 0.5 که دنبالش هستید. البته باید توجه کنید که ممکنه تمام اعداد ماتریس 1 در بیاد ولی اگه همچنین کاری بشه کاملا اتفاقی بوده.

کد زیر کار مورد نظر شما رو انجام میده:

m=3;n=2;
a=rand(m,n)
b=ones(m,n);
for i=1:m
for j=1:n
if a(i,j)>=0 & a(i,j)<0.5
b(i,j)=0;
end
end
end
b

سلام - تشکر
یک تابع از خود متلب دیدم که همین کار انجام میده.

F = binornd(1,0.5,10,10);

این تابع از بین اعداد صحیح با شروع از صفر تا عددی که خودمون بهش میدیم، (یعنی اولین عدد داخل پرانتز) با احتمال داده شده یک ماتریس 10*10 میده. اندازه ماتریس و میزان احتمال و دامنه اعداد رو خودمون دستی یا با تعریف متغییر می تونیم بهش بدیم.

تشکر