کدهای Matlab و Numpy را برای پخش اعداد و آرایه های تصادفی مقایسه کنید
همانطور که می دانید، Numpy یک کتابخانه زبان برنامه نویسی پایتون است که همراه با مجموعه ای از توابع ریاضی سطح بالا برای محاسبه ماتریس های پایتون و کار بر روی آرایه های برداری، ماتریس ها و تانسورها استفاده می شود. . Matlab همچنین یک زبان برنامه نویسی و محیط محاسبات عددی است که در آن می توانید محاسبات ماتریس، توابع و داده های نقشه برداری، پیاده سازی الگوریتم ها و ایجاد رابط ها و ایجاد رابط برای برنامه های نوشته شده به زبان های دیگر را انجام دهید.
ویژگی مشترک Numpy و Matlab این است که هر دو در طیف گسترده ای از محاسبات ماتریسی و عددی استفاده می شوند. با این حال، چند تفاوت وجود دارد. در این پست به نحوه تولید اعداد و آرایه های تصادفی در Matlab و Numpy و مقایسه آن ها از نظر بازتولید اعداد تصادفی و آرایه های یکسان می پردازیم.
خواندن را فراموش نکنید: دانلود رایگان 13 فیلم آموزشی شبکه های عصبی متلب
اعداد و آرایه های تصادفی
هم Nampa و هم MATLAB می توانند اعداد و آرایه های تصادفی را با استفاده از یک دستور خاص تولید کنند. در اینجا دو مفهوم کلیدی وجود دارد:
- توزیع اعداد تصادفی
- دانه تصادفی
در مورد توزیع اعداد تصادفی، معمولاً از توزیع یکنواخت و توزیع نرمال استاندارد (گاوسی) استفاده می کنیم. در Nampa می توانیم از numpy.random.rand برای تولید اعداد تصادفی با توزیع یکنواخت استفاده کنیم. در متلب همچنین می توانیم با استفاده از دستور rand اعداد تصادفی با توزیع یکنواخت تولید کنیم. به مثال های ساده زیر توجه کنید:
در پایتون نامعتبر است:
numpy را به عنوان np وارد کنید
نمونه = np.random.rand (2)
مهر و موم (نمونه)
خروج:
[0.70573498 0.8595017 ]
متلب:
نمونه = رند (1، 2)
خروج:
ans =
0.5390 0.7686
مثال های بالا نمونه هایی از نحوه تولید اعداد تصادفی با توزیع یکنواخت هستند. علاوه بر این، ما می توانیم اعداد تصادفی را تولید کنیم که از توزیع نرمال استاندارد پیروی می کنند. برای این کار از دستورات زیر استفاده می کنیم:
در پایتون نامعتبر است: np.random.randn
Matlab: randn
ما میتوانیم از یک دستور یا تابع خاص برای تولید اعداد تصادفی با توزیع خاص استفاده کنیم، اما در این حالت هر بار که کد خود را پخش میکنیم، عدد تصادفی تولید شده متفاوت خواهد بود. اینجاست که دانه های تصادفی به عنوان یکی دیگر از اصول کلیدی که به شما امکان می دهد هر بار یک عدد تصادفی ثابت ایجاد کنید، وارد عمل می شوند.
از آموزش های جدید متلب: MATLAB if loop (آموزش ها و نکات گام به گام)
برای مثال کد پایتون زیر را در نظر بگیرید:
numpy را به عنوان np وارد کنید
np.random.seed (10)نمونه = np.random.rand (2)
مهر و موم (نمونه)
که این اعداد تصادفی را تولید می کند:
[0.77132064 0.02075195]
همچنین در متلب:
حلقه (10)؛
نمونه = رند (1، 2)
این نتیجه را خواهیم داشت:
نمونه = 0.7713 0.0208
مقایسه توابع رند در متلب و NAMPA
توابع Rand در متلب و Nampa برای محاسبه آرایه های مختلف استفاده می شوند:
- آرایه 1 بعدی به یک بردار اشاره دارد.
- آرایه دو بعدی به یک ماتریس اشاره دارد.
- آرایه سه بعدی به یک تانسور مرتبه سوم اشاره دارد.
- ……
- آرایه n بعدی (آرایه nD) به تانسور مرتبه n اشاره دارد.
سپس قصد داریم اعداد تصادفی با توزیع یکنواخت را به ترتیب در Nampay و MATLAB تولید کنیم. ما همچنین در تلاش هستیم تا همان اعداد تصادفی را در Nampay و MATLAB تولید کنیم.
حتما بخوانید: کجا و چرا از نرم افزار متلب استفاده کنیم یا نه؟
یک آرایه تک بعدی تولید کنید
برای بدست آوردن همان اعداد تصادفی با توزیع یکنواخت در Nampa و MATLAB، اندازه گیری را روی 4 و دانه تصادفی را روی 10 قرار می دهیم. سعی کنید:
بی اعتبار:
numpy را به عنوان np وارد کنید
np.random.seed (10)نمونه = np.random.rand (4)
مهر و موم (نمونه)
با اجرای این کد خواهیم داشت:
[0.77132064 0.02075195 0.63364823 0.74880388]
متلب:
حلقه (10)؛
نمونه = رند (1، 4)
با اجرای این کد خواهیم داشت:
نمونه =
0.7713 0.0208 0.6336 0.7488
کاملاً واضح است که هر دو بردار به طور تصادفی تولید شده مشابه هستند.
آموزش انواع داده در متلب به زبان بسیار ساده
آرایه های دو بعدی تولید کنید
برای ایجاد یک آرایه دو بعدی ابتدا ماتریس را 2 در 3 و دانه تصادفی را 10 قرار می دهیم.
بی اعتبار:
numpy را به عنوان np وارد کنید
np.random.seed (10)آزمایشی = np.random.rand (2، 3)
مهر و موم (نمونه)
با اجرای این کد خواهیم داشت:
[[0.77132064 0.02075195 0.63364823]
[0.74880388 0.49850701 0.22479665]]
متلب:
حلقه (10)؛
نمونه = رند (2، 3)
از طریق اجرای آن خواهیم داشت:
نمونه =
0.7713 0.6336 0.4985
0.0208 0.7488 0.2248
همانطور که می بینید، ماتریس های تولید شده به طور تصادفی به طور مساوی توزیع شده اند.
یک درس جدید برای متلب: روش گاس سیدل در متلب از صفر تا صد
یک آرایه سه بعدی تولید کنید
ابتدا اندازه ماتریس را 2 در 3 و دانه تصادفی را 10 قرار می دهیم.
بی اعتبار:
numpy را به عنوان np وارد کنید
np.random.seed (10) نمونه = np.random.rand (2، 3، 2)
چاپ (‘نمونه[:, :, 0] = ‘)
چاپ ()
مهر و موم (نمونه[:, :, 0])
چاپ ()
چاپ (‘نمونه[:, :, 1] = ‘)
چاپ ()
مهر و موم (نمونه[:, :, 1])
از طریق اجرای آن خواهیم داشت:
نمونه[:, :, 0] =
[[0.77132064 0.63364823 0.49850701]
[0.19806286 0.16911084 0.68535982]]
نمونه[:, :, 1] =
[[0.02075195 0.74880388 0.22479665]
[0.76053071 0.08833981 0.95339335]]
متلب:
حلقه (10)؛
نمونه = رند (2، 3، 2)
از طریق اجرای آن خواهیم داشت:
نمونه (:،:، 1) =
0.7713 0.6336 0.4985
0.0208 0.7488 0.2248
نمونه (:,:, 2) =
0.1981 0.1691 0.6854
0.7605 0.0883 0.9534
می بینید که تانسورهای تولید شده به طور تصادفی به طور مساوی توزیع شده اند.
دانلود: 7 درس کاربردی آموزش برنامه نویسی در متلب
اعداد تصادفی با توزیع نرمال در Nampay و MATLAB ایجاد کنید
همانطور که می بینید، Nampay و MATLAB در صورت استفاده از دانه تصادفی می توانند همان اعداد تصادفی را با توزیع یکنواخت تولید کنند. متأسفانه از آنجایی که Nampay و MATLAB از تبدیل های متفاوتی برای تولید نمونه از توزیع نرمال استاندارد استفاده می کنند، ما مجبوریم از همان تبدیل در Nampai و MATLAB استفاده کنیم. در عمل، بازتولید خروجی randn () MATLAB به عنوان Nampay هنوز امکان پذیر است.
بی اعتبار:
numpy را به عنوان np وارد کنید
از نرخ واردات scipy.stats
np.random.seed (10)trial = norm.ppf (np.random.rand (2، 3))
مهر و موم (نمونه)
به این ترتیب خواهیم داشت:
[[ 0.74320312 -2.03846052 0.34153145]
[ 0.67073049 -0.00374237 -0.75609325]]
متلب:
حلقه (10)؛
نمونه = norminv (رند (2، 3)، 0، 1)
با این کار خواهیم داشت:
نمونه =
0.7432 0.3415 -0.0037
-2.0385 0.6707 -0.7561
همانطور که می بینید، ماتریس های تولید شده به طور تصادفی با توزیع نرمال یکسان هستند.
براکت در متلب (آموزش گام به گام و نکات کاربردی)