MatlabTips
892 subscribers
462 photos
72 videos
54 files
304 links
آموزش MATLAB با "استفاده از ویدئو و متن" در سطوح مبتدی تا پیشرفته
پاسخ به سوالات تخصصی:
@roholazandie
Download Telegram
Forwarded from Deleted Account
برای نمودار بالا دستور grid on و grid off را امتحان کنید. در نسخه 2016 با این دستورات گریدها حذف و اضافه میشود.
مثال:
در این مثال محور theta را محدود میکنیم به بازه 0 تا پی.
theta = linspace(0,pi);
rho = theta/10;
polarplot(theta,rho)
thetalim([0 180])

در حقیقت در این ورژن متلب برای دستگاه قطبی محور تعریف شده است.
Forwarded from Deleted Account
Forwarded from شبکه توسعه
🔳⭕️پدیده داروینیسم معکوس

پروژه ای تعریف کرده اید و دو نفر پیمانکار را دعوت کرده اید که آن کار را انجام بدهند. اولی با اطمینان می گوید که حتما آن را انجام می دهد و دومی از شما وقت می خواهد فردا به شما زنگ می زند و می گوید که این کار شدنی است البته چالش هایی دارد که باید حتما آن را با شما در میان بگذارد.

دو نفر کاندیدای مدیر عاملی شده اند. شما آن ها را به هیات مدیره دعوت می کنید و بر اساس اطلاعاتی که هفته پیش به آنان داده اید از انان می خواهید که برنامه و پیش بینی خود را از آینده شرکت مطرح کنند. اولی برنامه خود را با اطمینان کامل ارایه می کند و موفقیت شرکت از پیش تضمین شده می داند و دومی برنامه کامل خود را مطرح می کند و البته موفقیت را مشروط به وجود پیش نیازهایی می کند که برخی محیطی هستند و برخی نیز در اختیار هیات مدیره.

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

پروفسوری در آکسفورد این پدیده را داروینیسم معکوس نامگذاری کرده. چرا؟ چون در داروینیسیم معمولی قوی تر ها می مانند و ضعیف ترها حذف می شوند ولی در داروینیسم معکوس هرکس که بیشتر حرف مفت بزند پروژه به او داده می شود! در این پدیده کسانی که اطمینان کاذب بیشتری تولید می کنند و ادعاهای گزاف تری مطرح می کنند پیروزترند و آن ها که صادقانه بی اطمینانی ها، چالش ها و مشکلات را می گویند حذف می شوند.

🖋⭕️تجویز راهبردی:
چه می توان کرد؟ آیا این خطای ذهنی راه درمانی هم دارد؟ بله!
الف) هر آنکس که به شما اطمینان صد درصد می دهد مشکوک باشید. چرا که آنان که در یک رشته خبره هستند زوایا، موانع، عدم قطعیت ها و پیش نیازهایی را می بینند که یک تازه کار خوش خیال نمی بیند.
ب) به جای اعتماد به سخنان افراد به عملکرد گذشته آنان نگاه کنید. صدای اعمال بسیار رساتر از صدای گفتار است.

مجتبی لشکربلوکی، معلم دانشگاه
@Dr_Lashkarbolouki
Forwarded from MATLAB
رسم چندین نمودار در یک گراف
هر بار که از دستور plot استفاده میکنیم، ناحیه گرافیکی پاک شده و نمودار جدید رسم میشود. چندین راه وجود دارد که بتوانید چند نمودار را روی هم بیندازید. یک روش استفاده از دستور plot است زمانی که چندین مجموعه را به عنوان ورودی میگیرد. روش دیگر استفاده از hold است.
روش اول:
دستور plot میتواند بیشتر از یک مجموع داده x,y را رسم کند. برای مثال میتوانیم یک موج سینوسی و یک موج کسینوسی را با هم دیگر به عنوان آرگومان plot داده و رسم کنیم.
%% set parameters
Nx=300;
xmax=3*pi;
%% calculate functions
x=linspace(0, xmax, Nx);
y1=sin(x);
y2=cos(x);
%% plot results
plot(x, y1, x, y2); % plots y1 vs x and y2 vs x
grid on
xlabel('x')
ylabel('sin(x), cos(x)')

برای اینکه روشن شود کدام نمودار مربوط به کدام معادله است از legend استفاده میکنند. خیلی اوقات در مقالات یا پایان نامه ها نیاز دارید چند نمودار را جهت مقایسه روی هم بیندازید و باید حتما legend بگذارید.
legend('sin(x)', 'cos(x)');
Forwarded from MATLAB
Forwarded from MATLAB
شما میتوانید به هر اندازه که بخواهید نمودار به plot پاس دهید. به عنوان نمونه میخواهیم خطی عمودی را رسم کنیم که از قعر کسینوس یعنی pi میگذرد(میخواهیم به گونه ای اختلاف فاز بین دو موج را مشاهده کنیم). به کد زیر دقت کنید که چگونه خط عمودی به دو موج دیگر به دستور plot اضافه شده است.
%% set parameters

Nx=100;

xmax=3*pi;

%% calculate functions

x=linspace(0, xmax, Nx);

y1=sin(x);

y2=cos(x);

%% plot results

plot(x, y1,...

x, y2, '--',...

[pi, pi],[-10, 10],'r');

axis([0, xmax, -1, 1]);

xlabel('x')

ylabel('sin(x), cos(x)')

legend('sin(x)', 'cos(x)');

نکته 1:
فرض کنید یک خط کد خیلی طولانی شود، میتوانیم بخشی از کد را در یک سطر نوشته، در ادامه آن ... وارد کنیم و با فشردن اینتر به سطر بعد برویم که ظاهر کد نویسیمان خوشگل بماند.
نکته 2: برای رسم یک خط عمودی من از دو نقطه استفاده کردم(قبلا گفتم که نقاط بهم متصل میشود و بنابراین با دو نقطه یک خط راست تشکیل میشود)
نکته 3: با دستور axis محورهای مختصات را محدود کردم. سعی کنید برنامه را بدون این خط اجرا کنید و تفاوت را ببینید.
نکته 4: اگر جایی متوجه نشدید بپرسید.
Forwarded from MATLAB
Forwarded from MATLAB
اما استفاده از hold چه برتری دارد؟
یک برتری عمده hold این است که شما میتوانید نمودارهای مختلف (نمودارهایی که الزاما با دستور plot رسم نمیشوند) را با هم رسم کنید. در مثال زیر یک سری داده تصادفی تولید میکنیم با استفاده از تابع randn. این تابع اعداد تصادفی با توزیع نرمال را تولید میکند. میخواهیم نمودار هیستوگرام این داده ها را رسم کنیم و سپس منحنی توزیع نرمال را نیز با توجه به فرمولی که دارد به آن اضافه کنیم.
%% set parameters for data
Ndata=10000;
q0=1.5; % mean of q data
sigmaq=0.25; % standard deviation of q data
qmin=0.0; % min and max for plotting
qmax=2.5;
nbins=25; % number of bins for histogram
%% generate simulation data
qdata=q0+sigmaq*randn(1,Ndata);
%% plot histogram of data
[nq, qs]=hist(qdata, nbins); % returns histogram
% data without plotting
bar(qs, nq); % makes histogram plot
xlabel('Value of q')
ylabel('Number of data points in bin')
axis([qmin, qmax, 0, inf]);
%% overlay plot of normal distribution function
Nq=200;
qa=linspace(qmin, qmax, Nq);
Pq=max(nq)*exp( -(qa-q0).^2/(2*sigmaq^2));
hold on
plot(qa, Pq, 'k', 'LineWidth', 2)
hold off

نکته اول: علامت % یک خط را کامنت مکیکند. یعنی متلب آن را اجرا نمیکند و شما برای خوانایی بیشتر کد از آن استفاده میکنید.
نکته دوم: %% برای سکشن بندی است و یکی از کاربردهای آن برای زیبایی کد است.
نکته سوم: خط نهم qdata داده هایی تصادفی با میانگین q0 و واریانس sigmaq هستند. با این حساب شما میتوانید داده هایی با توزیع نرمال با میانگین و واریانس دلخواه ایجاد کنید.
تابع hist داده های هیستوگرام را میسازد.
تابع bar برای رسم نمودار میله ای از آن استفاده میشود. از خروجی تابع hist به عنوان ورودی های تابع bar استفاده شده است.
نهایتا از دستور hold برای اضافه کردن منحنی توزیع نرمال به نمودار میله ای استفاده شده است.
Forwarded from MATLAB
🔵سیلی با طعم واقعیت🔵

خیلی از ماها برای اینکه پولدار تر شویم همیشه به فکر راههای جدید و بهتری هستیم و قطعا می دانیم با حقوق های اندکی که میگیریم یا کاسبی های کوچکی که داریم نمی توانیم به راحتی به خیلی از رویاهایی که داریم، برسیم. هر روز افراد زیادی را می بینیم که با تلاش کمی پول زیادی بدست می آورند: اگر بخشی که این پول را به طرق غیر متعارف بدست می آورند کنار بگذاریم می ماند افرادی که ایده های خوبی داشته اند و کسب کار خوبی به پا کرده اند. نمی خواهم در مورد همه چیز بحث کنم به همین خاطر به حوزه کوچکی می پردازم. مدتی است که افراد زیادی با من تماس می گیرند و به دنبال پیاده سازی یک ایده "ناب" برای یک آپلیکیشن موبایل هستند. از من می خواهند که ایده را برایشان پیاده کنم و پولدار شوند! عده ی دیگری که تعداشان به مراتب کمتر است خودشان یک قدم جلوتر می گذارند و برنامه نویسی آندروید یا آی او اس یاد می گیرند. خیلی از این افراد با دیدن برنامه های کاربردی ساده و با ایده های ابتدایی که پولهای خوبی در می آورند به فکر می افتند که "مگر از آن ها چه کم دارند!"
اگر معتاد خواندن مجلات یا کتاب های موفقیت هستید شاید بهتر باشد همینجا خواندن را متوقف کنید چون میخواهم آمار را برایتان رو کنم. بسیاری از این ایده های "ساده و موفق" پر از پیچیدگی های زیادی هستند که تنها با قواعد خشک و بی رحم بازار قابل درک هستند. تصورات ابتدایی و ساده از اینکه چند نفر در یک اتاق ایده ای به ذهنشان رسیده و بعد طی یک هفته آن را پیاده سازی کردند و پس از قرار دادنش در اینترنت میلیاردر شده اند تنها به درد فیلم های هالیوودی آبکی مانند فیلم "استیو جابز" می خورد. در عمل بسیاری از پروژه های این چنینی به شکست منجر می شوند و زمان و انرژی زیادی از افراد را به هدر می دهد. شما با قوانین قضایی، مافیا های مختلف و افراد و جریاناتی سر و کار خواهید داشت که تمام حرکت شما برایشان در حد یک نویز ساده است.
در زندگی روزمره چون موفقیت بیش از ناکامی به چشم می آید، دایما شانس موفقیت خودت را بیش از اندازه تخمین می زنی. رسانه ها علاقه ای به نبش قبر در قبرستان افراد ناموفق ندارند و این اصلا کار آن ها نیست. پشت سر هر نویسنده موفق صد نویسنده دیگر پیدا می کنی که کتاب هایشان هرگز به فروش نمی رسد. پشت سر آن ها هم صد نویسنده ی دیگر هست که ناشری پیدا نکرده اند. پشت سر آن ها هم صدها نفر هستند که دست نوشته های ناتمام شان زیر تاقچه خاک می خورد و باز هم صد ها نفر پشت آن ها که ایده های عالی برای نوشتن کتاب دارند. این قواعد صد البته جهانی هستند. بر طبق BUSINESS insider 93 درصد استارت آپ ها در سال اول در آمریکا شکست می خورند. از آنهایی که جان سالم بدر می برند با احتمال 10 درصد به سرمایه 40 میلیون دلار میرسند و بیشتر این شرکت ها مجبور به فروختن شرکت خود برای جلوگیری از ضرردهی می شوند.
منظور از این نوشته چیست؟ دست روی دست بگذاریم؟ قطعا اینطور نیست. وارد شدن در یک کسب کار یک کار علمی با هزاران پیچیدگی است. دست یازیدن به ایده های کاذب و تخیلی مانند انرژی های مثبت، جاذبه و قورت دادن غورباغه شکست شما را گارانتی و شما را به سمت توده های شکست خورده هل می دهد. "اسطوره موفقیت" ساز و کار سیستمی است که بدبختی اکثریت را به قیمت رفاه اقلیت توجیه می کند. برای شروع اولین قدم "توهم زدایی" از مسیر کسب کار و مشورت با افرادی است که در این باره مطالعات علمی انجام داده و تجربیات فراوان دارند. با تمام این ها باید باز هم پذیرفت که شانس نقش مهمی در مسیر دارد و قوانین مستقل از افکار ما عمل میکنند. به طور خلاصه: انتظار آنکه دنیا با شما عادلانه رفتار کند چون شما آدم خوبی هستید مانند این است که وقتی شیری جلوی شماست انتظار داشته باشید که او شما را نخورد چون شما او را نمی خورید!
Forwarded from MATLAB
🔵نمودار میله ای🔵
ممکن است مقادیر ذخیره شده در یک بردار را در قالب یک چارت میله ای بخواهید رسم کنید. فرمان bar(v) یک نمودار میله ای از مقادیر بردار v تولید میکند.
%%set data
temperatures=[71, 80, 73, 72, 78, 81, 73, 76];
%% plot data as bar chart
bar(temperatures);
xlabel('Measurement');
ylabel('Temperature(F)');
grid on;
Forwarded from MATLAB
حالا همین داده ها را میخام طور دیگه رسم کنم. اول مرتبشون میکنم و سپس محور افقی را طوری اسکیل میکنم که تفاوت بین مقادیرم محسوس شود. برای مرتب کردن از دستور sort و برای اسکیل کردن محور از دستور axis استفاده میکنیم که قبلا گفتم.
%% set data
temperatures=[71, 80, 73, 72, 78, 81, 73, 76];
sortedTemps=sort(temperatures);
Tmin=65;
Tmax=85;
%% plot data as bar chart
bar(sortedTemps);
xlabel('Measurement')
ylabel('Temperature (F)');
grid on
% axis([0, length(temperatures)+1, Tmin, Tmax]);

دقت کنید که در محور عمودی دیگر صفر دیده نمیشود. این نوع نمایش از همان داده های مثال قبل اختلاف بین مقادیر را مشخص تر کرده است در صورتی که با حذف صفر از محور عمودی تاکید آن بر مقادیر مطلق داده ها کمتر شده است. این که نمودار را به چه صورت شکل دهیم بستگی به نوع نگرش و اولویت های ما دارد که در آن لحظه چه چیزی برایمان مهم است.
در ضمن سعی کنید برنامه بالا را بدون اسکیل کردن محور عمودی اجرا کنید تا کاربرد این دستور را بهتر درک کنید.
Forwarded from MATLAB
نمودار میله ای از بردار دما
Forwarded from MATLAB
ترسیم داده های قبلی با نگاهی دیگر در نمودار میله ای
🔵هیستوگرام🔵
گاهی اوقات بیشتر از اینکه به جزییات داده ها علاقه مند باشیم به نحوه توزیع داده ها علاقه مندیم. نمودار هیستوگرام یک چارت میله ای است که تعداد داده هایی را که در بازه های مشخص قرار میگیرند را نشان میدهد. زمانی این موضوع برای ما سودمند است که تعداد زیادی داده در دست داشته باشیم. در این مثال از تابع rand(1,n) استفاده میکنیم که n عدد تصادفی با توزیع نرمال و میانگین 0 و انحراف معیار 1 تولید میکند. کد زیر نشان میدهد که چگونه توزیعی بسازیم که میانگین آن q0 و انحراف معیار آن sigmaq باشد.
%% set parameters for data
Ndata=10000;
q0=1.5; % mean of q data
sigmaq=0.25; % standard deviation of q data
qmin=0.0; % min and max for plotting
qmax=2.5;
nbins=25; % number of bins for histogram
%% generate simulation data
qdata=q0+sigmaq*randn(1,Ndata);

فرض کنید میخواهیم توزیع این داده هایی را که تولید کرده ایم را مشاهده کنیم. از تابع hist استفاده میکنیم. این تابع دو ورودی میگیرد که ورودی اول داده هاست و ورودی دوم اصطلاحا "bin" گفته میشود. هر چقدر این bin بیتشر باشد رزولوشن هم طبیعتا بیشتر میشود. در صورتی که bin تعیین نشود متلب به صورت پیش فرض یک مقداری را در نظر میگیرد.
در ادامه کد قبلی کد زیر را وارد کنید.
%% plot histogram of data
hist(qdata, nbins);
xlabel('Value of q')
ylabel('Number of data points in bin')
axis([qmin, qmax, 0, inf]);
از توماس جفرسون تا دونالد ترامپ: دو نکته، دو سوال

توماس جفرسون تنها سومین رییس جمهور آمریکا نبود، اون فیلسوف، دانشمند، حقوقدان و یک روشنفکر بزرگ بود. او به شدت تحت تاثیر نیوتون، جان لاک، روسو و جریان روشنگری در اروپا بود که اروپای تاریک، مستبد و عقب مانده قرون وسطی را تا انقلاب صنعتی سوق داد. این ویژگی تنها محدود به جفرسون نیست بیشتر رییس جمهورهای نخستین آمریکا بسیار فیلسوف مشرب و روشنفکر بودند. اما بعد از تقریبا سیصد سال چه اتفاقی برای آمریکا افتاده است که شخصی مانند دونالد ترامپ بر مسند ریاست جمهوری می نشیند؟

1- جان آدامز دومین رییس جمهور آمریکا می گوید:"تاکنون دموکراسی ای نبوده که دست به خود کشی نزده باشد." همچنین جفرسون می گوید:"دولت با تکیه ی تنها بر حاکمان منتخب مردم به تباهی می رود." شاید برای بسیاری تعجب بر انگیز باشد اما بنیانگذاران آمریکا و نیز نویسندگان روشنگری در اروپا نسبت به روندهای دموکراسی به شدت بدبین بودند. از دیدگاه آنها در موارد بسیاری توده های مردم بر اساس احساسات تصمیم می گیرند و انتخاب های اشتباه حتی برای اکثریت دور از انتظار نیست. از قضا بزرگترین دیکتاتور های مدرن (مانند هیتلر، قذافی، موگابه و غیره) از طریق انتخاب مردم سر کار آمدند. از دیدگاه جفرسون انتخابات تنها بخشی از دموکراسی است. قانون اساسی، تفکیک قوا و ساختارهای سیاسی برای حفظ حقوق اقلیت بخش های دیگر آن هستند. این که این بخش ها تا چه زمانی می توانند با انتخاب های نادرست اکثریت دوام بیاورند سوال اول است.

2- از دید بسیاری مانند هابرماس، روند مدرن شدن کامل نشده است و هنوز نیاز به کار فراوان است. ارزش های روشنگری مانند "عقلانیت"، "تحمل نظرات مخالف"(tolerance)، "آزادی بیان"، "جدایی دین از سیاست" و غیره هنوز برای اکثریت مردم، حتی در کشورهایی که میراث دار روشنگری هستند مفاهیم جا افتاده ای نیست. شاید شرایط امروز آمریکا بهترین نشان دهنده این وضعیت باشد. اینکه چگونه باید این ارزش ها را از نو احیا کرد سوال دوم است.
Forwarded from MATLAB
نمودارهای پارامتری
معادله y = x را در نظر بگیرید. این معادله و معادلاتی به فرم y = f(x) را معادلات صریح میگویند. البته خیلی اوقات در دنیای واقعی معادلات بیان کننده یک واقعیت به صورت صریح قابل نوشتن نیستند و مجبوریم آنها را پارامتری بیان کنیم. مثلا x و y بر حسب پارامتر t بیان میشود. برای مثال معادله دایره را در نظر بگیرید(البته این مثال قابل نوشتن به دو فرم می باشد).
x =R cos(t)
y = R sin(t)
حالا کافی است که x,y را بر حسب هم رسم کنیم تا دایره ای به شعاع R و مرکز 0 رسم کنیم.
کد این مسئله هم خیلی راحت است.
t = 0:0.1:2*pi;
R = 2;
x = R * cos(t);
y = R * sin(t);
plot(x,y,'r')