عدد تصادفی در متلب | سایت استوایی

تولید عدد تصادفی در متلب

در برنامه نویسی متلب گاهی اوقات نیاز پیدا می کنیم تا یک یا چند عدد تصادفی ایجاد کنیم (مثلا در انتخاب نمونه های train برای آموزش دادن شبکه عصبی). در این آموزش با دو تابع پرکاربرد ()rand و ()randi جهت تولیدعدد تصادفی در متلب و همچنین تفاوت آنها آشنا خواهید شد.  در آموزش دوم ، طی یک مثال کاربردی نحوه ایجاد نویز بین دو عکس با استفاده از تابع  ()randi را فرا خواهید گرفت.

اگر آموزش قبل مربوط به آشنایی با کاربرد تابع ()size در نرم افزار متلب را هنوز مشاهده نکردید بهتر است که ابتدا این آموزش را ببینید. در آموزش بعدی گرد کردن اعداد اعشاری در متلب را فرا خواهید گرفت.

آموزش تصویری تولید عدد تصادفی در متلب

تابع ()rand در متلب

با استفاده از تابع ()rand می‌توان ماتریس تصادفی که مقادیر درایه‌های آن اعداد اعشاری بین صفر و یک می‌باشد را تولید کرد. برای وروردی تابع می‌توان در بین پرانتزها فقط یک عدد و یا اینکه بصورت دقیق، تعداد سطر و ستون (عدد اول تعداد سطر و عدد دوم تعداد ستون) موردنظر را وارد نمایید. درصورتیکه در بین پرانتزها فقط یک عدد وارد شود، یک ماتریس مربعی با تعداد سطر و ستون یکسان تولید خواهد شد.

rand(5)      خروجی یک ماتریس مربعی 5 * 5  که مقادیر درایه‌های آن اعداد اعشاری بین 0 و 1 می‌باشد
rand(5,2)    خروجی یک ماتریس مربعی 2 * 5  که مقادیر درایه‌های آن اعداد اعشاری بین 1 و 1 می‌باشد   

تابع ()randi در متلب

با استفاده از تابع ()randi می‌توان اعداد صحیح تصادفی تولید کرد. برای ورودی تابع چند حالت به شرح زیر وجود دارد:

  1. در بین پرانتز فقط یک عدد وارد شود (randi(imax  : در این حالت یک عدد صحیح بین 0 و imax تولید خواهد کرد به عنوان مثال خروجی (randi(5 یک عدد صحیح بین 0 و 5  خواهد بود.
  2. در بین پرانتز دو عدد وارد شود (randi(imax , n : در این حالت یک ماتریس مربعی n*n که مقادیر درایه‌های آن اعداد تصادفی بین 1 و imax می‌باشد را تولید خواهد کرد. به عنوان مثال خروجی  (randi(5,3 یک ماتریس 3*3 می باشد که مقادیر درایه‌های آن عدد صحیح بین 1 و 5 خواهد بود.
  3. در بین پرانتز بازه اعداد تصادفی، تعداد سطر و ستون ماتریس بطور دقیق وارد شود (randi([imin  imax], n , m: دراین حالت یک ماتریس با n  سطر و m ستون که مقادیر درایه‌های آن اعداد تصادفی بین imin و imax می‌باشد را تولید خواهد کرد. به عنوان مثال خروجی (randi([10 40],2,3 یک ماتریس 3*2 ( 2 سطر و 3 ستون ) می‌باشد که مقادیر درایه‌های آن عدد صحیح بین 10 و 40 خواهد بود.
randi(5)               خروجی یک عدد صحیح بین 1 و 5 می‌باشد
randi(100,5)           خروجی یک ماتریس مربعی 5 * 5  که مقادیر درایه‌های آن اعداد صحبح بین 0 و 100  می‌باشد 
randi([70 100],5,2)    خروجی یک ماتریس مربعی 2 * 5  که مقادیر درایه‌های آن اعداد صحبح بین 70 و 100  می‌باشد

توضیحات مختصری درباره ایجاد نویز بین دو عکس

با استفاده از تابع ()randi بصورت زیر می‌توان بین دو عکس نویز ایجاد کرد.

به عنوان پارامتر ورودی تابع ()randi ابتدا بازه رنگ که می تواند بین 0 (رنگ سیاه) تا 255 (رنگ سفید) باشد و سپس تعداد سطر و ستون را مشخص می‌کنیم. دقت داشته باشید هرچه فاصله بازه رنگ بیشتر باشد کانتراست رنگی بیشتر خواهد بود.

axGray = imread(‘marioG.jpg’);
imRows = size(axGray);
margin = randi([10 240], imRows(1,1), 50);
axAll = [axGray  margin  axGray];
imshow(axAll);

متلب نارنجی

در این آموزش از متلب نارجی به تولید عدد تصادفی در متلب اشاره شده است. اعداد تصادفی در متلب کاربرد های زیادی دارند که در این آموزش به آنها اشاره کردیم.

19 نظر برای تولید عدد تصادفی در متلب ثبت شده

  1. سلام
    من میخواستم یه فایل اکسل تبدیل به فرمول ریاضی کنم

  2. سلام مهندس
    من میخاستم در متلب با تابع rand یک بازی تصادفی یا قرعه کشی درست کنم از شما کمک میخاهم
    ممنون

    1. سلام دوست من. متاسفانه به علت درگیری های زیادی که دارم، فرصت نمی کنم توی این موضوع بهتون کمک کنم

  3. سلام و ممنون از توضیحات عالی شما
    من میخواستم برای یک ماتریس 400 در 400 با روش کروسکال mst ترسیم کنم انجام این کار توی متلب ممکنه؟
    با تشکر

    1. سلام دوست عزیز. ممنونم از محبتتون. متاسفانه با این مورد آشنایی ندارم

  4. سلام وقت بخیر
    اگر بخواهیم با دستور rand ماتریسی به عنوان مثال 7*3 تولید کنیم که بین یک بازه ای باشه همانند انجام با دستور randi ، چه دستوری باید وارد کرد ؟

    1. سلام دوست عزیز. چند کامنت پایین تر، سوالی که امیر محمد پرسیده رو بخونید، جوابی هم که دادم بخونید. فکر میکنم اینجوری مشکل برطرف بشه

  5. من تو متلب دستور رو اجرا کردم ولی هیچ وقت عدد صفر رو نمیده (randi(5 ورژن متلبم 2010

    1. سلام دوست عزیز. درست می فرمایید. توی فیلم اشتباه گفتم از صفر و عذر خواهی میکنم. درستش این هست: عدد تصادفی از 1 تا مقدار وارد شده بهتون میده.

  6. سلام ، ممنون از سایت خوبتون، من نمیتونم اون 12ویدئو متلب که با عنوان ویتامین هست رو دانلود کنم با اینکه عضو شدم..

    1. سلام دوست عزیز
      از توجه شما سپاسگزاریم. فعلا لینک های مربوط به ویتامین استوایی و محصول پولی، غیر فعال هستن (بخاطر مشکلاتی که برای سرور دانلود پیش آمده بود)

  7. سلام
    اگر بخواهیم اعداد تصادفی اعشاری در بازه (۰/۵ ، ۰/۵_) داشته باشیم چه طور میشه این کارو کرد.

    1. سلام دوست عزیز. یک راه اینه که بین 5 و -5 اعداد تصادفی ایجاد کنید و نتایج رو بر 10 تقسیم کنید

  8. سلام
    برای تولید اعداد تصادفی دارای احتمال در متلب از چه تابعی باید استفاده کرد؟
    با تشکر

دیدگاهتان را بنویسید

پر کردن تمام موارد زیر الزامیست