MatlabTips
891 subscribers
462 photos
73 videos
54 files
304 links
آموزش MATLAB با "استفاده از ویدئو و متن" در سطوح مبتدی تا پیشرفته
پاسخ به سوالات تخصصی:
@roholazandie
Download Telegram
مثلا برای همین توزیع بالا احتمال 5 موفقیت و 3 موفقیت به صورت زیر حساب می شوند:
p = 0.4;
N = 10;
pd = makedist('Binomial','p',p,'N',N);
y = pdf(pd,[3,5]);

که در آن pdf تابع توزیع احتمال است. همین جا بهتر است متوقف شوید. دو مفهوم توزیع احتمال(probability distribution) و تابع چگالی احتمال (probability density function) را با هم اشتباه نگیرید. اولی در اصل همان مدل آماری ماست که استفاده می کنیم و شامل پارامتر ها وتنظیمات دیگر است در حالی که دومی فقط تابع ریاضی نشان دهنده احتمال هر پیش آمد است. در متلب می توانید توزیع احتمال چند جمله ای را به صورت زیر ببینید:
در نهایت می توان به صورت زیر این توزیع را رسم کرد:
p = 0.4;
N = 10;
pd = makedist('Binomial','p',p,'N',N);
y = pdf(pd,1:N);
plot(1:N, y);

نمودار زیر خروجی را نشان میدهد.
در قسمت های بعدی به صورت جرئی تر به این موارد می پردازیم
@MatlabTips
#For_bigginer, #Probability_distribution, #Statistical_model, #Binomial_distribution

نویسنده: (A-2)
🔵بردارهای منطقی🔵
سطح پیچیدگی:🌕🌑🌑🌑🌑
پیش‌نیاز:(برای مبتدی و متوسط)

می خواهم در مورد یکی از قدرتمندترین و زیباترین ویژگی های متلب صحبت کنم. در مورد بردارهای منطقی.
برای مثال عبارت زیر را در پنجره فرمان وارد کنید:

 r = 1;
r <= 0.5 % no semi-colon

خروجی بصورت منطقی است. در این حالت مقدار 0 یا false تولید میشود.
✔️عبارت زیر را امتحان کنید:
r = 1:5;
r <= 3

در این حالت یک بردار منطقی تولید میشود. قطعا تحلیل و تفسیر این بردار نیازمند این نیست که آی کیو بالای 200 داشته باشید.
✔️شما همچنین می توانید دو بردار را بصورت منطقی با یکدیگر مقایسه کنید:
 a = 1:5;
b = [0 2 3 5 6];
a == b % no semi-colon!

در این حالت مقایسه بصورت المان به المان است.
در پست‌های بعدی مثال‌های کاربردی در این زمینه ارائه خواهیم کرد.
@MatlabTips
#For_beginner, #For_intermidate
#Logical_vectors
نویسنده:(A-1)
🔵نمودارهایی با گسستگی🔵
سطح پیچیدگی:🌕🌑🌑🌑🌑
پیشنیاز: (آشنایی مقدماتی با کدنویسی)
برای:(مبتدیان و مقدماتی)

یک کاربرد خیلی مفید از بردارهای منطقی رسم نمودارهایی با گسستگی موضعی است. فرض کنید می خواهیم تابع دو ضابطه ای زیر را در بازه 0 تا 3pi رسم کنیم:
کد زیر اسکریپت مورد نظر را نشان میدهد.
x=0:pi/20:3*pi;
y = sin(x);
y=y.*(y>0); %setnegative values of sin(x) to zero
plot(x, y)

عبارت y>0 یک بردار منطقی را بر میگرداند. این بردار در جاهایی که مقدار sin مثبت است عدد 1 و در جاهایی که منفی است صفر را میدهد. در نهایت با استفاده از عملیات آرایه ای ضرب، مقادیر مثبت sin را برمیداریم.
✔️سعی کنید این کار را بدون استفاده از بردارهای منطقی انجام دهید.
ما باید خیلی خوشحال باشیم که میتونیم از بردارهای منطقی در متلب استفاده کنیم.
@MatlabTips
#For_beginner, #For_intermediate
#Logical_vecotrs
نویسنده:(A-1)
نمودار sin در جاهایی که مثبت است.
🔵اجتناب از بی نهایت🔵
سطح پیچیدگی:🌕🌑🌑🌑🌑
پیش نیاز: کدنویسی مقدماتی
برای: (مبتدیان و مقدماتی)

✔️تقدیم به "فرداد پیر"
میخواهیم نمودار tan در بازه 3pi/2- تا 3pi/2 رسم کنیم. اولین چیز یا شایدم تنهاترین چیزی که به ذهنمان می رسد کد زیر است:
x = -3/2*pi : pi/100 : 3/2*pi;
y = tan(x);
plot(x, y)

نمودار این کد در شکل زیر مشاهده می شود:
چیزی که مشاهده می کنید به هر چیزی شبیه است به جز نمودار tan. دلیل این امر میل کردن tan به بی نهایت در مضارب فرد pi/2 است.
برای حل این موضوع بسادگی میتوانیم از بردارهای منطقی استفاده کنیم. بنابراین خط زیر را قبل از دستور plot به برنامه اضافه می کنیم:
y = y .* (abs(y) < 1e10); % remove the big ones

این عبارت جاهایی از بردار y را که مقدار زیادی دارند را صفر میکند و نمودار به درستی مقیاس می شود.
@MatlabTips
#Fo_beginner, #For_intermediate
#Logical_vectors
نویسنده: (A-1)
a nice graph for tan(x)
🔵رسم نمودارها با کارکترهای خاص🔵
سطح پیچیدگی:🌕🌕🌑🌑🌑
پیش نیاز: (تسلط به کدنویسی مقدماتی)
برای: (پیشرفته)

اکثر بچه ها در کلاس از رسم نمودارهایی با کاراکترهای خاص(مثل رادیکال، دایره، یورو، حروف یونانی و ...) سوال میپرسند.
از آنجایی که رعایت این نکات در کیفیت کار تاثیر بسزایی دارد در این پست به چگونگی این کار میپردازیم.

✔️فرض کنید یک سری داده‌هایی از دما داریم که میخواهیم رسم کنیم و در محور دما سمبول درجه را نیز نمایش دهیم.
t1 = datetime(2014,1:12,1);
temp = [0 2 12 11 15 25 23 27 25 24 12 8];

✔️اضافه کردن یک برچسب با سمبل درجه:
h = plot(t1,temp,':*');
ax = h.Parent;
title('A Year of Temperatures on the 1st of the Month')
ylabel('Degrees Celcius ^{\circ}')

در زیر شکل این نمودار آورده شده است:
حالا می خواهیم تمام اعداد روی محور yها را با سمبل درجه نمایش دهیم:
>> ytl = ax.YTickLabel

ytl =

'0'
'5'
'10'
'15'
'20'
'25'
'30'

چسباندن سمبل به اعداد محور y:
ytld = strcat(ytl,'^{\circ}');
ax.YTickLabel = ytld;
به سمبل دما بر روی اعداد محور y دقت کنید!
✔️ حالا فرض کنید محور y ها به جای دما پول باشد. ابتدا برچسب ها را با مقادیر اولیه جایگزین میکنیم(که سمبول درجه پاک شود) و برچسب محور y نیز بروزرسانی میکنیم:
ax.YTickLabel = ytl;
ylabel('Cost in $')
title('Income by Month')

✔️برای بروز رسانی اعداد بر روی محور y میتوانید مشابه حالت قبل عمل کنید:
ytld = strcat(ytl,' $');
ax.YTickLabel = ytld;
بروزرسانی محور y با نماد دلار