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


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

سوال لطفا کمک کنید

#4
سلام.
کدهای متلب :

کد:
clear all
close all
clc

a=0;
b=0.2;
mean=0.01064;
total_number=20;
epsilon=0.000001;
r=a+(b-a).*rand(1,total_number);


difference=sum(sum(r))-(total_number*mean);

finish=0;
while (finish == 0)
    if (abs(difference) < epsilon)
        finish=1;
    end
    if (difference > 0)
        for nn=1:total_number
            if (abs(difference) < epsilon)
                finish=1;
                % return;
            elseif (r(nn) > difference)
                r(nn)=r(nn)-difference;
                difference=0;
            else
                c=a;
                d=r(nn);
                random=c+(d-c).*rand(1);
                r(nn)=r(nn)-random;
                difference=difference-random;
            end
        end
    end
    if (difference < 0)
        for nn=1:total_number
            if (abs(difference) < epsilon)
                finish=1;
                % return;
            elseif (b-r(nn) > difference)
                r(nn)=r(nn)+abs(difference);
                difference=0;
            else
                c=0;
                d=b-r(nn);
                random=c+(d-c).*rand(1);
                r(nn)=r(nn)+random;
                difference=difference+random;
            end
        end
    end
end
  
r
final_mean=sum(sum(r))/total_number;
final_mean=vpa(final_mean)

a و b حدود تولید اعداد تصادفی است. total_number برابر تعداد عناصر بردار و mean همان میانگینی است که می خواهیم به آن برسیم.
epsilon مهم است و بر اساس تعداد ارقام اعشاری مقدار  mean ، باید مشخص شود (فعلا برای مقدار مورد نظر شما مناسب است).
مقدار نهایی میانگین اعداد، با نام final_mean نمایش داده می شود. همیشه حتما این مقدار را چک کنید.
اعداد تصادفی، در متغیر r ذخیره می شوند.

نتیجه اجرای کدها :

کد:
r =

  Columns 1 through 9

    0.0001    0.0059    0.0090    0.0010    0.0292    0.0011    0.0015    0.0352    0.0198

  Columns 10 through 18

    0.0404    0.0113    0.0209    0.0001    0.0024    0.0033    0.0031    0.0125    0.0092

  Columns 19 through 20

    0.0031    0.0037


final_mean =

0.01064

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


پیام‌های این موضوع
سوال لطفا کمک کنید - توسط bmosavari - ۱۳۹۲/۰۶/۲۳, ۰۵:۳۳ ب.ظ
RE: سوال لطفا کمک کنید - توسط admin - ۱۳۹۲/۰۶/۲۳, ۱۰:۴۲ ب.ظ
RE: سوال لطفا کمک کنید - توسط bmosavari - ۱۳۹۲/۰۶/۲۳, ۱۰:۴۸ ب.ظ
RE: سوال لطفا کمک کنید - توسط admin - ۱۳۹۲/۰۶/۲۴, ۰۷:۲۵ ب.ظ

پرش به انجمن:


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