تالار گفتمان مانشت
ایجاد نقاط تصادفی - متلب - نسخه‌ی قابل چاپ

ایجاد نقاط تصادفی - متلب - αɾια - ۱۵ اردیبهشت ۱۳۹۷ ۱۰:۳۴ ق.ظ

سلام ،
چطور میشه یه تعداد نقطه تصادفی(مثلا ۱۰۰تا) در محیط دایره با مرکز و شعاع معلوم در نرم افزار متلب ایجاد کرد Huh
به طوری که مختصات نقاط تصادفی ایجاد شده هم چاپ/ذخیره بشه.

ایجاد نقاط تصادفی - متلب - The BesT - 15 اردیبهشت ۱۳۹۷ ۱۲:۲۱ ب.ظ

سلام
فکر کنم اینجوری بشه. خودتون هم در بیشتر در مورد چیزی که گفتم فکر کنید:
براساس شعاع که دارید مساحت و محیط دایره را حساب کنید. بعد نقطه مرکز دایره را (۰و۰) در نظر بگیرید و به اندازه شعاع (مثلا ۳۰باشه) به اندازه ۳۰تا به چپ میتونی بری و ۳۰تا به راست که اینور و اونور دایره را حساب کنید. بعد توی برنامه بگید تمام نقاطی که میتونه توی این فرمول و بازه باشه را مشخص کنه براتون (مساحت=pr2) ... اول ببینید نقاط را روی این فرمول براتون مشخص میکنه یا نه (فعلا متلب ندارم وگرنه براتون حساب میکردم) بعد که حساب کرد یعنی درسته.... پس بیایید یه حلقه صدتایی تعریف کنید و بگید با تابع rand این بین این نقاط که مشخص شدن انتخاب کنه بهتون نشون بده.
این به ذهنم رسید. ببینید اگر جواب داد که خوبه.اگر نه بگید تا چک کنم براتون Smile

RE: ایجاد نقاط تصادفی - متلب - αɾια - ۱۵ اردیبهشت ۱۳۹۷ ۱۲:۵۴ ب.ظ

(۱۵ اردیبهشت ۱۳۹۷ ۱۲:۲۱ ب.ظ)The BesT نوشته شده توسط:  سلام
فکر کنم اینجوری بشه. خودتون هم در بیشتر در مورد چیزی که گفتم فکر کنید:
براساس شعاع که دارید مساحت و محیط دایره را حساب کنید. بعد نقطه مرکز دایره را (۰و۰) در نظر بگیرید و به اندازه شعاع (مثلا ۳۰باشه) به اندازه ۳۰تا به چپ میتونی بری و ۳۰تا به راست که اینور و اونور دایره را حساب کنید. بعد توی برنامه بگید تمام نقاطی که میتونه توی این فرمول و بازه باشه را مشخص کنه براتون (مساحت=pr2)... اول ببینید نقاط را روی این فرمول براتون مشخص میکنه یا نه (فعلا متلب ندارم وگرنه براتون حساب میکردم) بعد که حساب کرد یعنی درسته.... پس بیایید یه حلقه صدتایی تعریف کنید و بگید با تابع rand این بین این نقاط که مشخص شدن انتخاب کنه بهتون نشون بده.
این به ذهنم رسید. ببینید اگر جواب داد که خوبه.اگر نه بگید تا چک کنم براتون Smile
ممنون.
دایره رو با این دستور ایجاد میکنم.
[تصویر:  454992_jmrp_m1.jpg]

این کد هم برای تولید ۵۰۰تا نقطه تصادفیه ولی خروجیش اصلا جالب نیست.
[تصویر:  454992_ft81_m2.jpg]

شایدم بخاطر این باشه که با
مهمان عزیز شما قادر به مشاهده پیوندهای انجمن مانشت نمی‌باشید. جهت مشاهده پیوندها ثبت نام کنید.
دارم کار میکنم و متلب نیست Undecided
"توی برنامه بگید تمام نقاطی که میتونه توی این فرمول و بازه باشه را مشخص کنه براتون" همینو نمیدونم چجوری بنویسم Sad
ببخشید اگه خیلی سادست سوالم ،اخه روزِ اول آشناییم با متلبِ Confused

RE: ایجاد نقاط تصادفی - متلب - BBumir - 15 اردیبهشت ۱۳۹۷ ۰۱:۲۴ ب.ظ

سلام،
این به دردتون می‌خوره به احتمال زیاد من دقیق متوجه نشدم منظورتون سطح دایرست یا داخلش ولی هر دوتاش کدش به پیوسته. ایدشم اینه که رندم زاویه‌های بین ۰ تا ۳۶۰ درجه درست می‌کنه و دایره رو می‌سازه.


کد:
clear all;
close all;
%%random points generate on 2D circle circumference (in surface of circle)
n = 100;%% number of random points
radius = 5;
center = [2,1];
%%idea is generate random angle
raw_rand = rand(n,1);
rand_angle = raw_rand * 2*pi;%rand angle between 0 to 360 degree
x_rand = radius.*cos(rand_angle)+ center(1);
y_rand = radius.*sin(rand_angle)+ center(2);
%%scatter plot
figure();
scatter(x_rand,y_rand)
merged_rand_points(:,1) = x_rand(:,1);
merged_rand_points(:,2) = y_rand(:,1);
%%print points
merged_rand_points
%save points in working directory
save('rand_surface_points_file_v1.mat','merged_rand_points')


%%random points generate on 2D circle area (inside circle)
clear all;
n = 1000;
radius = 5;
center = [2,1];
%%idea is generate random angle and random radious
raw_rand_angle = rand(n,1);
rand_angle = raw_rand_angle * 2*pi;%rand angle between 0 to 360 degree
raw_rand_radius = rand(n,1);
rand_radius = raw_rand_radius * radius;
x_rand = rand_radius.*cos(rand_angle)+ center(1);
y_rand = rand_radius.*sin(rand_angle)+ center(2);
%%scatter plot
figure();
scatter(x_rand,y_rand)
merged_rand_points(:,1) = x_rand(:,1);
merged_rand_points(:,2) = y_rand(:,1);
%%print points
merged_rand_points
%save points in working directory
save('rand_inside_points_file_v1.mat','merged_rand_points')


RE: ایجاد نقاط تصادفی - متلب - αɾια - ۱۵ اردیبهشت ۱۳۹۷ ۰۵:۲۱ ب.ظ

(۱۵ اردیبهشت ۱۳۹۷ ۰۱:۲۴ ب.ظ)BBumir نوشته شده توسط:  سلام،
این به دردتون می‌خوره به احتمال زیاد من دقیق متوجه نشدم منظورتون سطح دایرست یا داخلش ولی هر دوتاش کدش به پیوسته. ایدشم اینه که رندم زاویه‌های بین ۰ تا ۳۶۰ درجه درست می‌کنه و دایره رو می‌سازه.
سلام ،خیلی ممنون
بله یه سری نقاط داخل دایره میخواستم و کد دوم دقیقا همون بود ،مرسی.
فقط یه سوال، شرط تکراری نبودن نقاط در این کد اعمال میشه؟
چون من ۳ مجموعه A-B-C دارم که هرکدوم دارای یه تعداد نقطه مشخص هستند و قراره درون این دایره پخش بشن و بعد فاصله نقاط از هم محاسبه بشه و در تابع دیگه ای استفاده بشه.

RE: ایجاد نقاط تصادفی - متلب - BBumir - 15 اردیبهشت ۱۳۹۷ ۱۰:۴۵ ب.ظ

(۱۵ اردیبهشت ۱۳۹۷ ۰۵:۲۱ ب.ظ)kimya_r نوشته شده توسط:  
(15 اردیبهشت ۱۳۹۷ ۰۱:۲۴ ب.ظ)BBumir نوشته شده توسط:  سلام،
این به دردتون می‌خوره به احتمال زیاد من دقیق متوجه نشدم منظورتون سطح دایرست یا داخلش ولی هر دوتاش کدش به پیوسته. ایدشم اینه که رندم زاویه‌های بین ۰ تا ۳۶۰ درجه درست می‌کنه و دایره رو می‌سازه.
سلام ،خیلی ممنون
بله یه سری نقاط داخل دایره میخواستم و کد دوم دقیقا همون بود ،مرسی.
فقط یه سوال، شرط تکراری نبودن نقاط در این کد اعمال میشه؟
چون من ۳ مجموعه A-B-C دارم که هرکدوم دارای یه تعداد نقطه مشخص هستند و قراره درون این دایره پخش بشن و بعد فاصله نقاط از هم محاسبه بشه و در تابع دیگه ای استفاده بشه.

سلام، خواهش می‌کنم.
شرط تکرار بررسی نمی‌شه ولی احتمالش خیلی خیلی کمه که ۲تا نقطه تکراری بشن.