به جای بیان انتگرال می توان این تکنیک را بر اساس تابع تجمعی هم توضیح داد. یعنی ما به دنبال نقطه ای هستیم که در معادله زیر صدق کند:
بزرگترین مانع در این راه روش دشوار بودن انتگرال گیری در مواردی است که تابع توزیع احتمال خود دشوار باشد.
اکنون به یک مثال عملی می پردازیم: تابع توزیع Rayleigh به صورت زیر است:
اکنون به یک مثال عملی می پردازیم: تابع توزیع Rayleigh به صورت زیر است:
پس نمونه گیری از آن به این صورت است که ابتدا یک x به صورت یکنواخت تولید می کنیم و سپس در فرمول زیر می گذاریم:
به عبارتی دیگر:
در این قسمت مبحث ما بر روی نمونه برداری تصادفی به پایان می رسد.
@MatlabTips
sigma = 3;
x = rand; % x drawn from uniform distribution in the [0 1] interval
u = sigma*sqrt(-2*log(1-x)); % u drawn from the Rayleigh distribution
در این قسمت مبحث ما بر روی نمونه برداری تصادفی به پایان می رسد.
@MatlabTips
🔵توجه🔵
در حال تهیه یک پک بی نظیر از آموزش متلب هستیم. که به زودی در اختیار شما عزیزان قرار خواهد گرفت.
@MatlabTips
در حال تهیه یک پک بی نظیر از آموزش متلب هستیم. که به زودی در اختیار شما عزیزان قرار خواهد گرفت.
@MatlabTips
🔵انداختن عکس بر روی رویه🔵
سطح پیچیدگی: 🌕🌓🌑🌑🌑
پیش نیاز: آشنایی با رسم رویه در متلب
برای: متوسط
📝هدف از این پست: سرگرمی و درک قابلیت های متلب
همگی با دستورا Surf آشنا هستیم. ای دستور یک رویه سه بعدی را در متلب رسم میکند. اما یک کاربرد جذاب این دستور پهن کردن یک تصویر بر روی رویه می باشد.
دستور surf ویژگی های زیادی دارد( که دانشجوی علاقه مند می تواند به help متلب رجوع کند). در این پست خاص ما ویژگی FaceColor را به texturemap تنظیم میکنیم و ویژگی CData را همان اطلاعات سه بعدی تصویر را قرار میدهیم. در ضمن باید ویژگیEdgeColor را به none تغییر دهیم. این که وظیفه هر یک از این ویژگی ها چیست، ممکن است قدری خسته کننده و طولانی باشد. به همین دلیل در صورت علاقه میتوانید در help متلب یا اینترنت آن را دنبال کنید.
در این پست می خواهم یک تصویر را بر روی یک کره (شما می توانید هر رویه ای را تعریف کنید)پهن کنم.
1⃣توجه: کره در مختصات کروی تعریف شده است(اگر حال فکر کردن دارید به آن فکر کنید)
2⃣توجه:(اگر دوست داشتید در متلب کد را اجرا کنید آدرس تصویر را تغییر دهید)
3⃣توجه: تشریح این کد در ویدئوی آموزشی آمده است.
#Surface, #Surf, #Image, #For_intermediate
@MatlabTips
سطح پیچیدگی: 🌕🌓🌑🌑🌑
پیش نیاز: آشنایی با رسم رویه در متلب
برای: متوسط
📝هدف از این پست: سرگرمی و درک قابلیت های متلب
همگی با دستورا Surf آشنا هستیم. ای دستور یک رویه سه بعدی را در متلب رسم میکند. اما یک کاربرد جذاب این دستور پهن کردن یک تصویر بر روی رویه می باشد.
دستور surf ویژگی های زیادی دارد( که دانشجوی علاقه مند می تواند به help متلب رجوع کند). در این پست خاص ما ویژگی FaceColor را به texturemap تنظیم میکنیم و ویژگی CData را همان اطلاعات سه بعدی تصویر را قرار میدهیم. در ضمن باید ویژگیEdgeColor را به none تغییر دهیم. این که وظیفه هر یک از این ویژگی ها چیست، ممکن است قدری خسته کننده و طولانی باشد. به همین دلیل در صورت علاقه میتوانید در help متلب یا اینترنت آن را دنبال کنید.
در این پست می خواهم یک تصویر را بر روی یک کره (شما می توانید هر رویه ای را تعریف کنید)پهن کنم.
1⃣توجه: کره در مختصات کروی تعریف شده است(اگر حال فکر کردن دارید به آن فکر کنید)
2⃣توجه:(اگر دوست داشتید در متلب کد را اجرا کنید آدرس تصویر را تغییر دهید)
3⃣توجه: تشریح این کد در ویدئوی آموزشی آمده است.
% planet
% place image on surface
% Author: Jabbar Kamali
%% set parameters
N=100;
lambda=1;
%% make grid
theta=linspace(0, pi, N);
phi=linspace(0, 2*pi, N);
r = 1;
[phi,theta]=meshgrid(phi,theta);
x = r .* sin(theta) .* cos(phi);
y = r .* sin(phi) .* sin(theta);
z = r .* cos(theta);
axis([0, 1, -1, 1, 0, 1]);
%% get image
flower=imread('C:\Users\jegerz\Desktop\flower.jpg' );
for k=1:3
flower(:,:,k)=flipud(flower(:,:,k));
end
%% plot surface
surf(x,y,z,...
'FaceColor', 'texturemap', 'CData', flower,...
'EdgeColor', 'none');
axis equal
#Surface, #Surf, #Image, #For_intermediate
@MatlabTips
🔵سلسله مراتب هندل آبجکت های گرافیکی🔵
سطح پیچیدگی:🌕🌑🌑🌑🌑
پیشنیاز: آشنایی با گرافیک در متلب
برای: علاقه مندان به مفهوم گرافیک
📝هدف از این پست : شما در این پست و پست های بعدی مفهوم هندل گرافیکی و اشیا گرافیکی را به صورت کامل خواهید آموخت.
در متلب تمام پنجره ها(figure) فرزندان(children) آبجکت ریشه(root) هستند. root همان پنجره مادر یا کلاینت یا متلب می باشد.
هر پنجره می تواند دارای فرزندانی چون axes، نمودارها و واسط های کاربری مختلف باشد. اشیا واسط کاربری(دکمه ها، اسلایدرها، چک باکس ها و ...) به کاربر اجازه میدهند تا اجرای یک برنامه را از طریق Callbackهایی کنترل کند. اشیا axes نمودارهای گرافیکی را نمایش میدهد و خود میتواند دارای فرزندانی باشد.
اشیا گرافیکی هم برای نمایش مورد استفاده قرار میگیرند و هم میتوانند به ورودی هایی مثل کلیک موس و دکمه عکس العمل نشان دهند.
جدول زیر نمایی از سلسله مراتب این اشیا را نشان می دهد. هر یک از این اشیا لیست بلند بالایی از ویژگی هایی که ظاهر انها را تنظیم میکند دارند. برای اطلاعات بیشتر می تواند در اینترنت عباراتی مثل "lineseries properties" یا "image properties" جستجو کنید.
در پست بعد در مورد تفاوت axis و axes و مفهوم عمیق تر هندل ها صحبت خواهیم کرد.
با ما باشید.
#Handle, #Graphics
@MatlabTips
سطح پیچیدگی:🌕🌑🌑🌑🌑
پیشنیاز: آشنایی با گرافیک در متلب
برای: علاقه مندان به مفهوم گرافیک
📝هدف از این پست : شما در این پست و پست های بعدی مفهوم هندل گرافیکی و اشیا گرافیکی را به صورت کامل خواهید آموخت.
در متلب تمام پنجره ها(figure) فرزندان(children) آبجکت ریشه(root) هستند. root همان پنجره مادر یا کلاینت یا متلب می باشد.
هر پنجره می تواند دارای فرزندانی چون axes، نمودارها و واسط های کاربری مختلف باشد. اشیا واسط کاربری(دکمه ها، اسلایدرها، چک باکس ها و ...) به کاربر اجازه میدهند تا اجرای یک برنامه را از طریق Callbackهایی کنترل کند. اشیا axes نمودارهای گرافیکی را نمایش میدهد و خود میتواند دارای فرزندانی باشد.
اشیا گرافیکی هم برای نمایش مورد استفاده قرار میگیرند و هم میتوانند به ورودی هایی مثل کلیک موس و دکمه عکس العمل نشان دهند.
جدول زیر نمایی از سلسله مراتب این اشیا را نشان می دهد. هر یک از این اشیا لیست بلند بالایی از ویژگی هایی که ظاهر انها را تنظیم میکند دارند. برای اطلاعات بیشتر می تواند در اینترنت عباراتی مثل "lineseries properties" یا "image properties" جستجو کنید.
در پست بعد در مورد تفاوت axis و axes و مفهوم عمیق تر هندل ها صحبت خواهیم کرد.
با ما باشید.
#Handle, #Graphics
@MatlabTips
🔵هندلroot🔵
سطح پیچیدگی:🌕🌑🌑🌑🌑
پیشنیاز: آشنایی با گرافیک در متلب
برای: علاقه مندان به مفهوم گرافیک
📝هدف از این پست : اطلاعاتی در مورد هندل root
قدرت مانور در بخش گرافیک متلب احتمالا به دلیل هندل اشیا گرافیکی است. (یک فصل از ویدئوی آموزشی که بسیار حرفه ای است به همین بخش اختصاص داده شده است)، ما در اینجا به اختصار به این مفاهیم میپردازیم.
هندل های گرافیکی عناصر پایه ای در گرافیک متلب هستند. این آبجکت ها براساس یک ساختار والد-فرزندی آرایش داده شده اند. برای مثال آبجکت های line و text فرزندان آبجکت Axes هستند. توجه به سلسله مراتب والد-فرزندی ، الی الخصوص هنگامی که میخواهدی آبجکت های گرافکی را با استفاده از هندلشان دستکاری کنید، اهمیت دارد.
1⃣هر موقع که متلب یک آبجکت گرافیکی میسازد، بصورت خودکار هندل آن نیز ایجاد میشود.
2⃣خود هندل بصورت floating-point نمایش داده میشود، اما این مسئله ای نیست که ما به آن اهمیت دهیم. چیزی که مهم تر است ذخیره هندل و سپس استفاده از هندل برای تغییر و دستکاری آبجکت گرافیکی مورد نظر است.
3⃣آبجکت root تنها آبجکتی است که هندلش 0 است. تنها یک آبجکت root وجود دارد که در هنگام stratup متلب ساخته میشود. تمام آبجکت های دیگر زیر root قرار میگیرند(به تصویر بالا دقت کنید)
#Handle, #Graphics , #Root, #For_all
@MatlabTips
سطح پیچیدگی:🌕🌑🌑🌑🌑
پیشنیاز: آشنایی با گرافیک در متلب
برای: علاقه مندان به مفهوم گرافیک
📝هدف از این پست : اطلاعاتی در مورد هندل root
قدرت مانور در بخش گرافیک متلب احتمالا به دلیل هندل اشیا گرافیکی است. (یک فصل از ویدئوی آموزشی که بسیار حرفه ای است به همین بخش اختصاص داده شده است)، ما در اینجا به اختصار به این مفاهیم میپردازیم.
هندل های گرافیکی عناصر پایه ای در گرافیک متلب هستند. این آبجکت ها براساس یک ساختار والد-فرزندی آرایش داده شده اند. برای مثال آبجکت های line و text فرزندان آبجکت Axes هستند. توجه به سلسله مراتب والد-فرزندی ، الی الخصوص هنگامی که میخواهدی آبجکت های گرافکی را با استفاده از هندلشان دستکاری کنید، اهمیت دارد.
1⃣هر موقع که متلب یک آبجکت گرافیکی میسازد، بصورت خودکار هندل آن نیز ایجاد میشود.
2⃣خود هندل بصورت floating-point نمایش داده میشود، اما این مسئله ای نیست که ما به آن اهمیت دهیم. چیزی که مهم تر است ذخیره هندل و سپس استفاده از هندل برای تغییر و دستکاری آبجکت گرافیکی مورد نظر است.
3⃣آبجکت root تنها آبجکتی است که هندلش 0 است. تنها یک آبجکت root وجود دارد که در هنگام stratup متلب ساخته میشود. تمام آبجکت های دیگر زیر root قرار میگیرند(به تصویر بالا دقت کنید)
#Handle, #Graphics , #Root, #For_all
@MatlabTips
🔵استفاده از تابع cellfun🔵
سطح پیچیدگی:🌕🌕🌑🌑🌑
پیشنیاز:(کد نویسی متوسط)
برای:(متوسط و پیشرفته)
گاهی اوقات نیاز داریم که یک تابع را بر روی تعدادی شی مختلف اعمال کنیم. برای این کار می توان از تابع cellfun استفاده کرد. در این تابع می توان تابع های متلب یا تابع های از پیش تعریف شده کاربر را بر روی یک cell اعمال کرد.بله درست خواندید: این تابع به صورت ورودی تابع می پذیرد. به طور مثال لیست زیر را در نظر بگیرید:
میخواهیم طول هر کدام را حساب کنیم. برای این کار می توان به صورت زیر عمل کرد:
حالا فرض کنید که من چند ماتریس با اندازه های مختلف در یک سل قرار داده ام به صورت زیر:
و می خواهم ترانهاده همه آن ها را محاسبه کرده و در یک سل جدید قرار دهم:
آرگومان UniformOutput به صورت پیش فرض true است بنابراین برای اینکه خروجی را به صورت یک سل جدید داشته باشم باید آن را به false تغییر دهم. اما شاید جالب ترین کاربرد آن هنگامی است که ما با استفاده از توابع بی نام یا توابع لمبدا (lambda function) عملیات مورد نظرمان را بر روی داده ها انجام میدهیم. مثلا من می خواهم جمع تمام اعضای هر کدام از آرایه ها را به صورت جدا حساب کنم. برای این منظور به صورت زیر این کار را انجام می دهم:
در قطعه کد بالا از تابعی تعریف شده که با @ مشخص گردیده و این بدان معنی است که این تابع بدون نام است (نام آن مهم نیست) و ورودی X را می گیرد و خروجی sum(sum(x)) را تولید می کند. توابع دیگری هم وجود دارند که ارتباط نزدیکی با cellfun دارند که در قسمتهای بعدی به آنها می پردازیم.
@MatlabTips
#For_intermediate, #For_Advanced
#Cellfun , #Anonymous_Function , #Lambda_Function
سطح پیچیدگی:🌕🌕🌑🌑🌑
پیشنیاز:(کد نویسی متوسط)
برای:(متوسط و پیشرفته)
گاهی اوقات نیاز داریم که یک تابع را بر روی تعدادی شی مختلف اعمال کنیم. برای این کار می توان از تابع cellfun استفاده کرد. در این تابع می توان تابع های متلب یا تابع های از پیش تعریف شده کاربر را بر روی یک cell اعمال کرد.بله درست خواندید: این تابع به صورت ورودی تابع می پذیرد. به طور مثال لیست زیر را در نظر بگیرید:
greetings = {'Hello','Guten Tag','Sawadee','Bonjour','Namaste',''}
میخواهیم طول هر کدام را حساب کنیم. برای این کار می توان به صورت زیر عمل کرد:
>> cellfun('size',greetings,2)
>> cellfun('length',greetings)
ans =
5 9 7 7 7 0
حالا فرض کنید که من چند ماتریس با اندازه های مختلف در یک سل قرار داده ام به صورت زیر:
>> A = {magic(3) eye(3) rand(4,3)}
A =
[3x3 double] [3x3 double] [4x3 double]
و می خواهم ترانهاده همه آن ها را محاسبه کرده و در یک سل جدید قرار دهم:
>> Btrans = cellfun(@transpose,A,'UniformOutput',false)
Btrans =
[3x3 double] [3x3 double] [3x4 double]
آرگومان UniformOutput به صورت پیش فرض true است بنابراین برای اینکه خروجی را به صورت یک سل جدید داشته باشم باید آن را به false تغییر دهم. اما شاید جالب ترین کاربرد آن هنگامی است که ما با استفاده از توابع بی نام یا توابع لمبدا (lambda function) عملیات مورد نظرمان را بر روی داده ها انجام میدهیم. مثلا من می خواهم جمع تمام اعضای هر کدام از آرایه ها را به صورت جدا حساب کنم. برای این منظور به صورت زیر این کار را انجام می دهم:
>> Bsum = cellfun(@(x) sum(sum(x)),A)
Bsum =
45.0000 3.0000 7.3668
در قطعه کد بالا از تابعی تعریف شده که با @ مشخص گردیده و این بدان معنی است که این تابع بدون نام است (نام آن مهم نیست) و ورودی X را می گیرد و خروجی sum(sum(x)) را تولید می کند. توابع دیگری هم وجود دارند که ارتباط نزدیکی با cellfun دارند که در قسمتهای بعدی به آنها می پردازیم.
@MatlabTips
#For_intermediate, #For_Advanced
#Cellfun , #Anonymous_Function , #Lambda_Function
🔵گرفتن هندل🔵
سطح پیچیدگی:🌕🌑🌑🌑🌑
پیشنیاز: خواندن دو پست قبلی
برای: علاقه مندان به مفهوم گرافیک
📝هدف از این پست : بدانیم چگونه میتوان یک هندل شی گرافیکی را گرفت و ویژگی های آن را بررسی کنیم.
🎙توجه:🎙 اگر فکر میکنید پست های مربوط به گرافیک بیهوده است به جرات میتوانم بگویم که نرم افزار متلب را درک نکرده اید و بهتر است مطالعتتان را بیشتر کنید.
توابعی که برای رسم آبجکتهای گرافیکی استفاده می شوند(مثل plot,figure,...) می توان به نحوی از آنها استفاده کرد که هندلشان را بگیریم.
متغیر hsin هندل آبجکت گراف سینوس است و hx هندل آبجکت تکست. دقت کنید که مقدار این دو هندل از نوع اعشاری است.
1⃣هندل hsin را در یک متغیر ذخیره کنید(hsin_new). حالا متغیر hsin را پاک کنید و مقدار hsin_new را ببینید. تعجب نکنید که hsin_new هیچ مقداری ندارد، چون مادرش از بین رفته است. این نوع ادیس دهی، اندیس دهی با رفرنس است( که هندل های گرافیکی از این دسته هستند). یعنی اگر رفرنس پاک شود، باقی نیز پاک میشوند.
2⃣اگر پنجره گرافیک را ببندیم دیگر hsin و hx هم در کار نخواهدبود. به عبارتی تا زمانی این ها اعتبار دارند که شی گرافیکی وجود داشته باشد.
این آبجکت ها به فراخور نوع عملی که انجام میدهند یک سری ویژگی هم دارند. که اگر بخواهیم آن ها را لیست کنیم از دستور get استفاده میکنیم. برای مثال:
#For_all , #Graphics
@MatlabTips
سطح پیچیدگی:🌕🌑🌑🌑🌑
پیشنیاز: خواندن دو پست قبلی
برای: علاقه مندان به مفهوم گرافیک
📝هدف از این پست : بدانیم چگونه میتوان یک هندل شی گرافیکی را گرفت و ویژگی های آن را بررسی کنیم.
🎙توجه:🎙 اگر فکر میکنید پست های مربوط به گرافیک بیهوده است به جرات میتوانم بگویم که نرم افزار متلب را درک نکرده اید و بهتر است مطالعتتان را بیشتر کنید.
توابعی که برای رسم آبجکتهای گرافیکی استفاده می شوند(مثل plot,figure,...) می توان به نحوی از آنها استفاده کرد که هندلشان را بگیریم.
x = 0:pi/20:2*pi;
hsin = plot(x, sin(x))
hold on
hx = xlabel(’x’)
متغیر hsin هندل آبجکت گراف سینوس است و hx هندل آبجکت تکست. دقت کنید که مقدار این دو هندل از نوع اعشاری است.
1⃣هندل hsin را در یک متغیر ذخیره کنید(hsin_new). حالا متغیر hsin را پاک کنید و مقدار hsin_new را ببینید. تعجب نکنید که hsin_new هیچ مقداری ندارد، چون مادرش از بین رفته است. این نوع ادیس دهی، اندیس دهی با رفرنس است( که هندل های گرافیکی از این دسته هستند). یعنی اگر رفرنس پاک شود، باقی نیز پاک میشوند.
2⃣اگر پنجره گرافیک را ببندیم دیگر hsin و hx هم در کار نخواهدبود. به عبارتی تا زمانی این ها اعتبار دارند که شی گرافیکی وجود داشته باشد.
این آبجکت ها به فراخور نوع عملی که انجام میدهند یک سری ویژگی هم دارند. که اگر بخواهیم آن ها را لیست کنیم از دستور get استفاده میکنیم. برای مثال:
get(hsin)
get(hx)
#For_all , #Graphics
@MatlabTips