انجمن سایت کلیدستان


رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
حرکت رندم و تصادفی در ماتریس، در متلب

حرکت رندم و تصادفی در ماتریس، در متلب

#2
سلام.
با توجه به اهمیت این مدل مقداردهی ماتریس ها، من کل برنامه را نوشتم.
در نوشتن برنامه متلب مورد نظر، تعداد پرتوهایی که گفتید را با متغیر number_of_beams تعیین می کنید و ماتریس اولیه را هم به صورت ماتریسی با عناصر صفر تعریف می کنیم (با نام A و اندازه دلخواه) که بعدا ماتریسی با نام B از روی آن ساخته می شود که در آن، عناصر مربوط به پرتوها، دارای مقدار 1 می باشند. برای هر پرتو، ابتدا یک زاویه تصادفی بین 1 تا 360 درجه تولید می شود و سپس از مفهوم سینوس (sin) و کسینوس (cos) استفاده می کنیم تا متوجه شویم که کدام عناصر در آن پرتو قرار می گیرند.
کدهای متلب :

کد پی‌اچ‌پی:
clear all
close all
clc

A
=zeros(40,60);
number_of_beams=20;

A_size=size(A);
B=A;

for 
mm=1:number_of_beams
    x
=round(A_size(1)/2)
    
y=round(A_size(2)/2)
    
B(x,y)=1;

    
random_jahat_degree=randi(360)
    
random_jahat_radian=(random_jahat_degree/180)*pi
    jahat_sin
=sin(random_jahat_radian)
    
jahat_cos=cos(random_jahat_radian)

    
continue_while=1;
    while(
continue_while)
        
x=x+jahat_cos;
        
y=y+jahat_sin;
        
x_integer=round(x);
        
y_integer=round(y);
        if(
random_jahat_degree>=&& random_jahat_degree<=90)
            if(
x_integer<=A_size(1) && y_integer<=A_size(2))
                
B(x_integer,y_integer)=1;
            else
                
continue_while=0;
            
end
        
elseif(random_jahat_degree>=90 && random_jahat_degree<=180)
            if(
x_integer>=&& y_integer<=A_size(2))
                
B(x_integer,y_integer)=1;
            else
                
continue_while=0;
            
end
        
elseif(random_jahat_degree>=180 && random_jahat_degree<=270)
            if(
x_integer>=&& y_integer>=1)
                
B(x_integer,y_integer)=1;
            else
                
continue_while=0;
            
end
        
elseif(random_jahat_degree>=270 && random_jahat_degree<=360)
            if(
x_integer<=A_size(1) && y_integer>=1)
                
B(x_integer,y_integer)=1;
            else
                
continue_while=0;
            
end
        end
    end
end


imagesc
(B)
random_jahat_degree 

نتیجه دو بار اجرای کدهای متلب فوق :

   

   

bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ
 سپاس شده توسط ronak25 ، 4i469x ، Fahrenheit


پیام‌های این موضوع
حرکت رندم و تصادفی در ماتریس، در متلب - توسط ronak25 - ۱۳۹۳/۰۹/۰۸, ۰۱:۳۷ ب.ظ
RE: حرکت رندم و تصادفی در ماتریس، در متلب - توسط admin - ۱۳۹۳/۰۹/۰۸, ۱۰:۰۱ ب.ظ

پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان