رفتن به مطلب

ارسال های توصیه شده

سلااااام

من این برنامه رو تا اینجا نوشتم نمیدونم درسته یا نه؟

چطور این10000تا عددو بدونم به کدوم ستون تعلق داره؟

 

clc

clear

close all

mu=17.01;

sigma=3.2;

x=-1.1:1.3:20.9;

t=mu+sigma*randn(10000,1);

for i=1:10000;

a=24*t;

floor(a)

nnz((m-2*sigma)t);

nnz((m-sigma)t);

end

h = histc(t,-1.1:2.2:18.9)

 

 

میانگین و انحراف معیارتون تغییر کرده که، نیاز نیست در عددی ضرب کنین، اول توضیح بدین می خواین چیکار کنین، مقادیرتون بین چه عددهایی هست؟ با همون histc تنها هم می تونین به جواب برسین، نیاز به حلقه هم نداره. حالا یه دور با حلقه می نویسیم، بعد histc هم به جاش گذاشت.

  • Like 5
لینک به دیدگاه
  • پاسخ 159
  • ایجاد شد
  • آخرین پاسخ

بهترین ارسال کنندگان این موضوع

بهترین ارسال کنندگان این موضوع

میانگین و انحراف معیارتون تغییر کرده که، نیاز نیست در عددی ضرب کنین، اول توضیح بدین می خواین چیکار کنین، مقادیرتون بین چه عددهایی هست؟ با همون histc تنها هم می تونین به جواب برسین، نیاز به حلقه هم نداره. حالا یه دور با حلقه می نویسیم، بعد histc هم به جاش گذاشت.

 

بله چون دوتا تابع داریم که میانگین و انحراف معیارشون فرق میکنه الان واسه یکیش مینویسم...مقادیر باید بین -1.1 و 20.9 هست...

خب چطور احتمال هر ستونو بدست بیارم؟؟

  • Like 3
لینک به دیدگاه
بله چون دوتا تابع داریم که میانگین و انحراف معیارشون فرق میکنه الان واسه یکیش مینویسم...مقادیر باید بین -1.1 و 20.9 هست...

خب چطور احتمال هر ستونو بدست بیارم؟؟

 

خب اگه اینجوری باشه که خیلی از مقادیرتون بیرون بازه میفتن.

می خواین 24 تا ستون داشته باشیم، یه متغیر به نام h تعریف کردم که تعداد هر ستون رو بهمون بده، بعد قرار شد بازه 1.1- تا 20.9 رو به 24 تا بازه مساوی تقسیم کنیم، اینکار رو هم با linspace می تونیم انجام بدیم (24+1).

 

حالا یه حلقه میذاریم که ببینیم هر کدوم از این 1000 تا عدد مربوط به کدوم بازه هست، خب مقادیر رو با حلقه اول می خونیم، برای اینکه نیاز به شرط های زیادی پیدا نکنیم، واسه 24 تا بازه هم یه حلقه می نویسیم که راحت تر باشه، اینکه متعلق به بازه ای باشه باید بین مقادیر ابتدا (j) و انتهای (j+1) اون بازه باشه، بازه ها هم که با linspace توی Range قرار دادیم. اگه داخل هر بازه ای بود، به عدد ستون مر بوط به اون یکی اضافه می کنیم.

 

 

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

مجموع مقادیر آخر کمتر از هزار میشه، این مربوط به اعدادی هست که توی بازه قرار نگرفتن.

  • Like 6
لینک به دیدگاه
خب اگه اینجوری باشه که خیلی از مقادیرتون بیرون بازه میفتن.

می خواین 24 تا ستون داشته باشیم، یه متغیر به نام h تعریف کردم که تعداد هر ستون رو بهمون بده، بعد قرار شد بازه 1.1- تا 20.9 رو به 24 تا بازه مساوی تقسیم کنیم، اینکار رو هم با linspace می تونیم انجام بدیم (24+1).

 

حالا یه حلقه میذاریم که ببینیم هر کدوم از این 1000 تا عدد مربوط به کدوم بازه هست، خب مقادیر رو با حلقه اول می خونیم، برای اینکه نیاز به شرط های زیادی پیدا نکنیم، واسه 24 تا بازه هم یه حلقه می نویسیم که راحت تر باشه، اینکه متعلق به بازه ای باشه باید بین مقادیر ابتدا (j) و انتهای (j+1) اون بازه باشه، بازه ها هم که با linspace توی Range قرار دادیم. اگه داخل هر بازه ای بود، به عدد ستون مر بوط به اون یکی اضافه می کنیم.

 

 

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

مجموع مقادیر آخر کمتر از هزار میشه، این مربوط به اعدادی هست که توی بازه قرار نگرفتن.

مرررررسسسسی عالی بود...مهندس اگه بخوایم بصورت میله ای نمودارشو نشون بدیم که با دستور bar ،اررور میده....

  • Like 3
لینک به دیدگاه
مرررررسسسسی عالی بود...مهندس اگه بخوایم بصورت میله ای نمودارشو نشون بدیم که با دستور bar ،اررور میده....

 

سلام

خواهش می کنم، ممنون.

 

چه اروری میده، آخرش سه bar استفاده کنین دیگه:

 

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

  • Like 6
لینک به دیدگاه
سلام

خواهش می کنم، ممنون.

 

چه اروری میده، آخرش سه bar استفاده کنین دیگه:

 

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

سلااااممم

مرسسسسی درست شد...واقعااا ممنونم...فقط ی زحمت دیگه چطور محور افقیشو از 0 تا 24 تنظیم کنم طوری 24 تا میله داشته باشیم؟؟؟؟

  • Like 3
لینک به دیدگاه
سلااااممم

مرسسسسی درست شد...واقعااا ممنونم...فقط ی زحمت دیگه چطور محور افقیشو از 0 تا 24 تنظیم کنم طوری 24 تا میله داشته باشیم؟؟؟؟

 

الان هم 24 تا میله دارین، ولی برای نمایشش روی محور افقی این خط رو به آخرش اضافه کنین:

 

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

  • Like 5
لینک به دیدگاه
الان هم 24 تا میله دارین، ولی برای نمایشش روی محور افقی این خط رو به آخرش اضافه کنین:

 

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

ممنون درست شد...

  • Like 3
لینک به دیدگاه
مرررررسسسسی عالی بود...مهندس اگه بخوایم بصورت میله ای نمودارشو نشون بدیم که با دستور bar ،اررور میده....

 

سلااام مهندس

ببخشید این خط یعنی چی؟؟؟

t(i)== range(end)

h(end) = h(end) + 1;

  • Like 3
لینک به دیدگاه
سلااام مهندس

ببخشید این خط یعنی چی؟؟؟

t(i)== range(end)

h(end) = h(end) + 1;

 

سلام

خب من برای همه بازه ها مساوی و بزرگتر از محدوده ی پایینی و کوچکتر از محدوده ی بالای بازه در نظر گرفتم. اینجوری برای بازه ی آخر شامل عدد 20.9 نمیشه، در واقع مقادیر مساوی این عدد اصلا شمرده نمیشن، این دو خط داره همین کار رو برامون انجام میده، یعنی تعداد مقادیر مساوی با 20.9 رو هم به ستون آخرمون اضافه می کنه. end هم آدرس مولفه آخر بردار (یا هر آرایه دیگه) رو بهمون میده.

  • Like 5
لینک به دیدگاه
سلام

خب من برای همه بازه ها مساوی و بزرگتر از محدوده ی پایینی و کوچکتر از محدوده ی بالای بازه در نظر گرفتم. اینجوری برای بازه ی آخر شامل عدد 20.9 نمیشه، در واقع مقادیر مساوی این عدد اصلا شمرده نمیشن، این دو خط داره همین کار رو برامون انجام میده، یعنی تعداد مقادیر مساوی با 20.9 رو هم به ستون آخرمون اضافه می کنه. end هم آدرس مولفه آخر بردار (یا هر آرایه دیگه) رو بهمون میده.

مرسسسی از توضیح عالیییی تون:a030:

  • Like 4
لینک به دیدگاه
مرسسسی از توضیح عالیییی تون:a030:

 

ببخشید ی مشکل دارم!:sad0:

همین برنامه رو واسه توزیع لگاریتمی نوشتم ولی اررور میده...تابعشو مگه نباید بنویسم؟؟؟

clc

clear all

close all

mu = 3.2;

sigma = 0.9;

pi=3.14;

t = mu+sigma*randn(1000,1);

f(t)=(1/(t*sigma*sqrt(2*pi)))*exp(-(log(t)-mu)/(2*0.81));

h = zeros(1,21);

range = linspace(-1.3,7.7,22);

 

for i = 1:1000

for j = 1:21

if t(i)>= range(j) && t(i)

h(j) = h(j) + 1;

 

elseif t(i)== range(end)

h(end) = (h(end) + 1);

end

end

end

bar(h)

set(gca,'XTick',1:21)

 

  • Like 5
لینک به دیدگاه
ببخشید ی مشکل دارم!:sad0:

همین برنامه رو واسه توزیع لگاریتمی نوشتم ولی اررور میده...تابعشو مگه نباید بنویسم؟؟؟

clc

clear all

close all

mu = 3.2;

sigma = 0.9;

pi=3.14;

t = mu+sigma*randn(1000,1);

f(t)=(1/(t*sigma*sqrt(2*pi)))*exp(-(log(t)-mu)/(2*0.81));

h = zeros(1,21);

range = linspace(-1.3,7.7,22);

 

for i = 1:1000

for j = 1:21

if t(i)>= range(j) && t(i)

h(j) = h(j) + 1;

 

elseif t(i)== range(end)

h(end) = (h(end) + 1);

end

end

end

bar(h)

set(gca,'XTick',1:21)

 

 

اینجوری که نوشتین به نظر درست نیست، فرق فرمولش با توزیع نرمال چی هست؟

  • Like 6
لینک به دیدگاه

 

برای تولید اعداد تصادفی با توزیع Lognormal از دستور lognrnd می تونین استفاده کنین، توی هلپ متلب نگاه کنین چه شکلی نوشته.

  • Like 5
لینک به دیدگاه

سلااااام

چطور میتونیم درجه بندی محور های نمودارو تو متلب تغییر بدیم؟مثلا هر واحد بصورت: 5-10 واحد بعد 10-15نوشته شده باشد.

با تشکر

  • Like 5
لینک به دیدگاه
سلااااام

چطور میتونیم درجه بندی محور های نمودارو تو متلب تغییر بدیم؟مثلا هر واحد بصورت: 5-10 واحد بعد 10-15نوشته شده باشد.

با تشکر

 

سلام

منظورتون این شکلی هست؟

czax6kze6xnab9uboov.png

 

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

  • Like 6
لینک به دیدگاه

سلام دوستان

اگه در برنامه زیر بخوایم احتمال هر میله(ستون) رو بدست بیاریم از چه دستوری میتونیم استفاده کنیم؟؟

سپاس

clc

clear all

close all

mu = 3.2;

sigma = 0.9;

t=lognrnd(3.2,0.9,1,1000);

h = zeros(1,21);

range = linspace(-1.3,7.7,22);

 

for i = 1:1000

for j = 1:21

 

if t(i)>= range(j) && t(i)

h(j) = h(j) + 1;

 

elseif t(i)== range(end)

h(end) = (h(end) + 1);

end

end

end

bar(h)

xlabel('daily travel miles');

ylabel('% of vehicles');

 

set(gca,'XTickLabel',{'0-5','5-10','10-15','15-20','20-25','25-30'...

'30-35','35-40','40-45','45-50','50-55','55-60','60-65'...

'65-70','70-75','75-80','80-85','85-90','90-95','95-100',})

set(gca,'XTick',1:21)

 

  • Like 3
لینک به دیدگاه
سلام دوستان

اگه در برنامه زیر بخوایم احتمال هر میله(ستون) رو بدست بیاریم از چه دستوری میتونیم استفاده کنیم؟؟

سپاس

clc

clear all

close all

mu = 3.2;

sigma = 0.9;

t=lognrnd(3.2,0.9,1,1000);

h = zeros(1,21);

range = linspace(-1.3,7.7,22);

 

for i = 1:1000

for j = 1:21

 

if t(i)>= range(j) && t(i)

h(j) = h(j) + 1;

 

elseif t(i)== range(end)

h(end) = (h(end) + 1);

end

end

end

bar(h)

xlabel('daily travel miles');

ylabel('% of vehicles');

 

set(gca,'XTickLabel',{'0-5','5-10','10-15','15-20','20-25','25-30'...

'30-35','35-40','40-45','45-50','50-55','55-60','60-65'...

'65-70','70-75','75-80','80-85','85-90','90-95','95-100',})

set(gca,'XTick',1:21)

 

 

سلام

بیشتر مقادیرتون خارج این بازه میفته که، حدود 10 درصد رو توی نمودار نشون میدین.

واسه میله آخر هم 5-0 قرار میده، فکر کنم 20 تا لیبل گذاشتین که تکرار شد اولی.

 

احتمال منظورتون نسبت به کل مقادیر هست، اگه اینجور هست باید h رو تقسیم بر تعداد کل مقادیر t یعنی 1000 کنین.

 

این خطا رو می تونین اضافه کنین، واضح تر بشه، همینطور تعداد مقادیری که توی h قرار می گیره رو می تونین بشمرین:

 

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

  • Like 3
لینک به دیدگاه

×
×
  • اضافه کردن...