🔵توجه🔵
ممکن است پیامهای متنی که در کانال گذاشته میشود بر روی گوشیهای شما دچار اشکال شود و کلمات انلگیسی و فارسی جابه جا شوند. در اینصورت سعی کنید از روی لپتاپ یا کامپیوتر رومیزی خود استفاده کنید.
@MatlabTips
#Caution
نویسنده : (A-1)
ممکن است پیامهای متنی که در کانال گذاشته میشود بر روی گوشیهای شما دچار اشکال شود و کلمات انلگیسی و فارسی جابه جا شوند. در اینصورت سعی کنید از روی لپتاپ یا کامپیوتر رومیزی خود استفاده کنید.
@MatlabTips
#Caution
نویسنده : (A-1)
بازی زندگی (game of life)
پیش نیاز:( آشنایی مقدماتی با برنامه نویسی متلب)
سطح پیچیدگی: 🌕🌕🌑🌑🌑
"بازی زندگی" یک مدل ریاضی است که توسط جان کانوی ریاضیدان بریتانیایی اختراع شده است. بازی زندگی یک بازی است که بازیگری ندارد و شرایط آن را وضعیت اولیه مهره ها تعیین می کنند.
جهان در بازی زندگی یک صفحه مشبک دو بعدی است و موجودات این جهان خانه هایی اند که سیاه رنگ اند. زمان این جهان گسسته است و هر نسل از نسل قبل به وجود می آید. در هر قدم سرنوشت هر فرد توسط افراد دور و برش تعیین می شود. تنها 4 قاعده ساده زیر بر این جهان حکمفرماست:
1- هر سلول زنده اگر کمتر از دو نفر در اطرافش باشد از تنهایی میمیرد!
2- هر سلول زنده اگر دو یا سه نفر اطرافش باشد به نسل بعد منتقل می شود.
3- اگر سلول زنده ای بیشتر از 3 نفر در اطرافش باشد از کمبود امکانات و جمعیت زیاد می میرد!
4- هر سلول با دقیقا 3 نفر در اطرافش یک سلول جدید را بوجود می آورد: تولید نسل جدید!
شاید این قواعد ساده به نظر برسد اما همین قوانین به ظاهر ساده الگو های عجیبی را به نمایش می گذارند. پیچیدگی رفتار این سلول ها به حدی زیاد است که بسیاری از باور های پذیرفته شده علمی را به زیر سوال می برد. مهمترین اصلی که بسیار شهودی هم به نظر می رسد وجود یک ناظم یا مدیر برای ایجاد و نگهداری رفتار های پیچیده است. در بازی زندگی پیچیدگی به صورت خود سازمانده(self organized) از درون سادگی به وجود می آید و فرگشت می یابد. دنیل دنت فیلسوف و متخصص علوم شناختی "بازی زندگی" را مثالی از ایجاد ساخت های پیچیده مانند "آگاهی" و "اراده آزاد"(اختیار) از قوانین نسبتا ساده فیزیکی و اندر کنش آن ها به هم می داند.
حالا چگونه این برنامه را پیاده سازی کنیم. اولین نکته آن است که می توان چهار قاعده بالا را به یک قاعده زیر ساده کرد:
"یک سلول زنده با دو همسایه زنده، یا هر سلولی با سه همسایه زنده و در نسل بعد زنده است و در غیر این صورت زنده نیست"
این جمله را می توان به صورت زیر برنامه نویسی کرد:
( به نحوه ی ارتباط آن ها فکر کنید!)
که در آن GRID همان مشبک جهان ماست و neighbours همسایه های هر خانه است.
این بازی به قدری ساده است که شما به راحتی می توانید آن را پیاده سازی کنید. در زیر یک نمونه از برنامه برای بازی زندگی را می بینید:
خود متلب هم به صورت آماده این برنامه را پیاده سازی کرده است که با زدن life در خط فرمان می توانید آن را ببینید.(در easter egg های آن)
هر اجرای برنامه یک جهان می سازد. این جهان با تعدادی سلول(افراد) به صورت تصادفی آغاز می شود و ادامه می یابد: سلول ها با هم ترکیب شده و فرزندان جدیدی بوجود می آورند. برخی از قحطی از بین می روند و برخی از آن ها شروع به "مهاجرت" می کنند. الگوهای زیادی در بازی زندگی کشف شده اند. یکی از جالب ترین آن ها الگوی جنگ و فرار است که در آن دو طرف به سمت هم شلیک کرده و تعدادی از سلول ها به صورت زیر فرار می کنند. شکل زیر این الگو را نشان می دهد:
#Game_of_life
#Easter_egg
نویسنده: (A-2)
پیش نیاز:( آشنایی مقدماتی با برنامه نویسی متلب)
سطح پیچیدگی: 🌕🌕🌑🌑🌑
"بازی زندگی" یک مدل ریاضی است که توسط جان کانوی ریاضیدان بریتانیایی اختراع شده است. بازی زندگی یک بازی است که بازیگری ندارد و شرایط آن را وضعیت اولیه مهره ها تعیین می کنند.
جهان در بازی زندگی یک صفحه مشبک دو بعدی است و موجودات این جهان خانه هایی اند که سیاه رنگ اند. زمان این جهان گسسته است و هر نسل از نسل قبل به وجود می آید. در هر قدم سرنوشت هر فرد توسط افراد دور و برش تعیین می شود. تنها 4 قاعده ساده زیر بر این جهان حکمفرماست:
1- هر سلول زنده اگر کمتر از دو نفر در اطرافش باشد از تنهایی میمیرد!
2- هر سلول زنده اگر دو یا سه نفر اطرافش باشد به نسل بعد منتقل می شود.
3- اگر سلول زنده ای بیشتر از 3 نفر در اطرافش باشد از کمبود امکانات و جمعیت زیاد می میرد!
4- هر سلول با دقیقا 3 نفر در اطرافش یک سلول جدید را بوجود می آورد: تولید نسل جدید!
شاید این قواعد ساده به نظر برسد اما همین قوانین به ظاهر ساده الگو های عجیبی را به نمایش می گذارند. پیچیدگی رفتار این سلول ها به حدی زیاد است که بسیاری از باور های پذیرفته شده علمی را به زیر سوال می برد. مهمترین اصلی که بسیار شهودی هم به نظر می رسد وجود یک ناظم یا مدیر برای ایجاد و نگهداری رفتار های پیچیده است. در بازی زندگی پیچیدگی به صورت خود سازمانده(self organized) از درون سادگی به وجود می آید و فرگشت می یابد. دنیل دنت فیلسوف و متخصص علوم شناختی "بازی زندگی" را مثالی از ایجاد ساخت های پیچیده مانند "آگاهی" و "اراده آزاد"(اختیار) از قوانین نسبتا ساده فیزیکی و اندر کنش آن ها به هم می داند.
حالا چگونه این برنامه را پیاده سازی کنیم. اولین نکته آن است که می توان چهار قاعده بالا را به یک قاعده زیر ساده کرد:
"یک سلول زنده با دو همسایه زنده، یا هر سلولی با سه همسایه زنده و در نسل بعد زنده است و در غیر این صورت زنده نیست"
این جمله را می توان به صورت زیر برنامه نویسی کرد:
GRID = neighbours==3 | GRID & neighbours==2;
( به نحوه ی ارتباط آن ها فکر کنید!)
که در آن GRID همان مشبک جهان ماست و neighbours همسایه های هر خانه است.
این بازی به قدری ساده است که شما به راحتی می توانید آن را پیاده سازی کنید. در زیر یک نمونه از برنامه برای بازی زندگی را می بینید:
len = 300;%size of the world
GRID = int8(rand(len,len));
up = [2:len 1];
down = [len 1:len-1]; %the world is round
colormap([0,0,0;0,1,0]);
for i=1:100
neighbours = GRID(up,:) + GRID(down,:) + GRID(:,up) + GRID(:,down) ...
+ GRID(up,up) + GRID(up,down) + GRID(down,up) + GRID(down,down);
GRID = neighbours==3 | GRID & neighbours==2;
image(GRID*30);
pause(0.02);
end
خود متلب هم به صورت آماده این برنامه را پیاده سازی کرده است که با زدن life در خط فرمان می توانید آن را ببینید.(در easter egg های آن)
هر اجرای برنامه یک جهان می سازد. این جهان با تعدادی سلول(افراد) به صورت تصادفی آغاز می شود و ادامه می یابد: سلول ها با هم ترکیب شده و فرزندان جدیدی بوجود می آورند. برخی از قحطی از بین می روند و برخی از آن ها شروع به "مهاجرت" می کنند. الگوهای زیادی در بازی زندگی کشف شده اند. یکی از جالب ترین آن ها الگوی جنگ و فرار است که در آن دو طرف به سمت هم شلیک کرده و تعدادی از سلول ها به صورت زیر فرار می کنند. شکل زیر این الگو را نشان می دهد:
#Game_of_life
#Easter_egg
نویسنده: (A-2)
🔵متغیرهای global 🔵
پیشنیاز: (آشنایی با متغیر global)
سطح پیچیدگی:🌕🌑🌑🌑🌑
اگرچه استفاده از متغیرهای Globlal برای عملکرد برنامه بسیار مفید است، اما معایبی نیز دارد که در این پست به تعدادی از آنها اشاره میکنیم:
1⃣استفاده از متغیرهای Global به عنوان یک عادت بد برنامهنویسی تلقی میشود. این متغیرها مشکلاتی برای نگهداری کد ایجاد و خطایابی کد را مشکل میکنند. پس هنگام استفاده از آنها باید بسیار دقت کرد.
2⃣به جای اینکه متغیرهایی را به عنوان ورودی به توابع پاس دهیم میتوان از متغیرهای Global استفاده کرد. این کار عملکرد کد را به قیمت خوانایی و نگهداری کد بهبود میدهد.
3⃣هنگام تعریف یک متغیر Global باید از دستور global استفاده کنیم. بماند که این کار چقدر خستهکننده خواهد شد، اگر هم زمانی یک متغیر Global تعریف کنید و فراموشتان شود که از دستور global استفاده کنید، MATLAB بصورت خودکار آن را بصورت یک متغیر محلی تخصیص میدهد که بر روی متغیر global شما سایه (shadow) میاندازد و مشکلات عدیدهای در خطایابی ایجاد خواهد کرد.
4⃣دستور clear global تمام متغیرهای Global را پاک میکند، در حالی که clear global myVar تنها myVar را پاک میکند. اگر فراموش کنیم اسم متغیری که باید پاک شود بعد از این دستور ذکر کنیم، سهوا تمام متغیرهای Global پاک خواهد شد و مشکلات عجیبی در فاز خطایابی کد ایجاد خواهد کرد.
@MatlabTips
#Global
نویسنده:(A-1)
پیشنیاز: (آشنایی با متغیر global)
سطح پیچیدگی:🌕🌑🌑🌑🌑
اگرچه استفاده از متغیرهای Globlal برای عملکرد برنامه بسیار مفید است، اما معایبی نیز دارد که در این پست به تعدادی از آنها اشاره میکنیم:
1⃣استفاده از متغیرهای Global به عنوان یک عادت بد برنامهنویسی تلقی میشود. این متغیرها مشکلاتی برای نگهداری کد ایجاد و خطایابی کد را مشکل میکنند. پس هنگام استفاده از آنها باید بسیار دقت کرد.
2⃣به جای اینکه متغیرهایی را به عنوان ورودی به توابع پاس دهیم میتوان از متغیرهای Global استفاده کرد. این کار عملکرد کد را به قیمت خوانایی و نگهداری کد بهبود میدهد.
3⃣هنگام تعریف یک متغیر Global باید از دستور global استفاده کنیم. بماند که این کار چقدر خستهکننده خواهد شد، اگر هم زمانی یک متغیر Global تعریف کنید و فراموشتان شود که از دستور global استفاده کنید، MATLAB بصورت خودکار آن را بصورت یک متغیر محلی تخصیص میدهد که بر روی متغیر global شما سایه (shadow) میاندازد و مشکلات عدیدهای در خطایابی ایجاد خواهد کرد.
4⃣دستور clear global تمام متغیرهای Global را پاک میکند، در حالی که clear global myVar تنها myVar را پاک میکند. اگر فراموش کنیم اسم متغیری که باید پاک شود بعد از این دستور ذکر کنیم، سهوا تمام متغیرهای Global پاک خواهد شد و مشکلات عجیبی در فاز خطایابی کد ایجاد خواهد کرد.
@MatlabTips
#Global
نویسنده:(A-1)
🔵توجه🔵
با توجه به اینکه افراد متفاوتی با سطح آشنایی متفاوتتری در کانال حضور دارند، بنابراین سعی داریم که پستها از این به بعد دسته بندی شود که هر کس بتواند پست متناسب با خود را در نگاه اول بشناسد و در وقت خود صرفه جویی کند.
1⃣ پستهایی که برای افراد مبتدی است با هشتک For_beginner#
2⃣ پستهایی که برای افراد مقدماتی است با هشتک For_intermediate#
3⃣ پستهایی که برای افراد پیشرفته است با هشتک For_advanced#
و البته هر کدام از این دسته بندی های بصورت سریالی است که با دنبال کردن مرتب آنها و حفظ پیوستگی می توانید راحت تر آموزش ببینید.
@MatlabTips
#Caution
نویسنده:(A-1)
با توجه به اینکه افراد متفاوتی با سطح آشنایی متفاوتتری در کانال حضور دارند، بنابراین سعی داریم که پستها از این به بعد دسته بندی شود که هر کس بتواند پست متناسب با خود را در نگاه اول بشناسد و در وقت خود صرفه جویی کند.
1⃣ پستهایی که برای افراد مبتدی است با هشتک For_beginner#
2⃣ پستهایی که برای افراد مقدماتی است با هشتک For_intermediate#
3⃣ پستهایی که برای افراد پیشرفته است با هشتک For_advanced#
و البته هر کدام از این دسته بندی های بصورت سریالی است که با دنبال کردن مرتب آنها و حفظ پیوستگی می توانید راحت تر آموزش ببینید.
@MatlabTips
#Caution
نویسنده:(A-1)
🔵توابع ریاضیاتی🔵
سطح پیچیدگی:🌓🌑🌑🌑🌑
پیشنیاز:(ندارد)
برای: (مبتدیان)
در نرم افزار متلب تمام توابع ریاضی معمول که در ماشین حسابهای علمی وجود دارد یافت میشود، مانند sin، cos و log (لگاریتم طبیعی).
1⃣ مجذور عدد پی (محیط دایره به قطر آن) را با ( sqrt(pi در متلب میتوان محاسبه نمود. توجه کنید که متلب مقدار pi را میفهمد چرا که جز یکی از بیشمار توابع داخلی آن است.
2⃣ در توابع مثلثاتی مانند ( sin(x دقت داشته باشید که آرگومان X برحسب رادیان است. با ضرب درجه در عدد pi/180 رادیان بدست میآید.
3⃣ تابع نمایی در متلب با (exp(x حاصل میشود. بنابراین عدد e بصورت زیر بدست میآید.
✔️ از آنجایی که توابع داخلی بیشماری مانند pi و sin وجود دارد، بسیار دقت کنید که متغیرهایی که خودتان تعریف میکنید با این توابع دارای نام یکسان نباشد.
دقت کنید که دستور clear تمام متغیرها در workspace را حذف میکند. در صورتی که clear pi تنها متغیر pi را پاک میکند.
@MatlabTips
#Math , #Variable
#For_beginners
نویسنده:(A-1)
سطح پیچیدگی:🌓🌑🌑🌑🌑
پیشنیاز:(ندارد)
برای: (مبتدیان)
در نرم افزار متلب تمام توابع ریاضی معمول که در ماشین حسابهای علمی وجود دارد یافت میشود، مانند sin، cos و log (لگاریتم طبیعی).
1⃣ مجذور عدد پی (محیط دایره به قطر آن) را با ( sqrt(pi در متلب میتوان محاسبه نمود. توجه کنید که متلب مقدار pi را میفهمد چرا که جز یکی از بیشمار توابع داخلی آن است.
>> sqrt(pi)
ans =
1.7725
2⃣ در توابع مثلثاتی مانند ( sin(x دقت داشته باشید که آرگومان X برحسب رادیان است. با ضرب درجه در عدد pi/180 رادیان بدست میآید.
>> sin(90*pi/180)
ans =
1
3⃣ تابع نمایی در متلب با (exp(x حاصل میشود. بنابراین عدد e بصورت زیر بدست میآید.
>> exp(1)
ans =
2.7183
✔️ از آنجایی که توابع داخلی بیشماری مانند pi و sin وجود دارد، بسیار دقت کنید که متغیرهایی که خودتان تعریف میکنید با این توابع دارای نام یکسان نباشد.
>> pi = 4;
>> sqrt(pi)
ans =
2
>> clear pi
>> sqrt(pi)
ans =
1.7725
دقت کنید که دستور clear تمام متغیرها در workspace را حذف میکند. در صورتی که clear pi تنها متغیر pi را پاک میکند.
@MatlabTips
#Math , #Variable
#For_beginners
نویسنده:(A-1)
🔵بردارها و ماتریسها 🔵
سطح پیچیدگی:🌒🌑🌑🌑🌑
پیشنیاز:(ندارد)
برای:(مبتدیان)
همانطور که در ویدوهای پیشمقدماتی نیز گفته شد، نام MATLAB از Matrix Laboratory می آید چرا که متلب طوری طراحی شده است که با ماتریسها میتواند کار کند. ماتریس یک شی مستطیلی (برای مثال یک جدول) است که سطرها و ستون هایی دارد.
بردار یک نوع خاص از ماتریس است که تنها یک سطر یا یک ستون دارد. در زبان های برنامه نویسی دیگر به بردارها لیست یا آرایه هم می گویند. بردار را به عنوان لیستی از اعداد در نظر بگیرید. نرم افزار متلب با شیوه ای یکسان بر روی ماتریس و بردار عمل میکند ولی از آنجایی که بردار راحت تر است ابتدا با بردار شروع میکنیم.
✔️مقداردهی به یک بردارد:
کد بالا را در پنجره فرمان وارد کنید و برای مشاهده هر متغیر از دستور (disp(x استفاده کنید. این دستور یک عبارت را در خروجی نمایش میدهد.
به دو نکته زیر دقت داشته باشید:
1⃣عناصر در بردار در براکت ها ([ ]) قرار می گیرند.
2⃣عناصر با کاما یا اسپیس از هم جدا میشوند.
✔️بردارها با عملگر کولون ( : ) نیز قابل مقدار دهی هستند.
به رابطه اعداد تولید شده دقت کنید و ببینید اگر در حالتی مانند x که فقط دو عدد داریم با چه گامهایی بردار ساخته میشود.
@MatlabTips
#For_beginners, #Vector
نویسنده:(A-1)
سطح پیچیدگی:🌒🌑🌑🌑🌑
پیشنیاز:(ندارد)
برای:(مبتدیان)
همانطور که در ویدوهای پیشمقدماتی نیز گفته شد، نام MATLAB از Matrix Laboratory می آید چرا که متلب طوری طراحی شده است که با ماتریسها میتواند کار کند. ماتریس یک شی مستطیلی (برای مثال یک جدول) است که سطرها و ستون هایی دارد.
بردار یک نوع خاص از ماتریس است که تنها یک سطر یا یک ستون دارد. در زبان های برنامه نویسی دیگر به بردارها لیست یا آرایه هم می گویند. بردار را به عنوان لیستی از اعداد در نظر بگیرید. نرم افزار متلب با شیوه ای یکسان بر روی ماتریس و بردار عمل میکند ولی از آنجایی که بردار راحت تر است ابتدا با بردار شروع میکنیم.
✔️مقداردهی به یک بردارد:
X = [1 3 0 -1 5];
A = [5, 6, 7];
b = [110-100];
کد بالا را در پنجره فرمان وارد کنید و برای مشاهده هر متغیر از دستور (disp(x استفاده کنید. این دستور یک عبارت را در خروجی نمایش میدهد.
به دو نکته زیر دقت داشته باشید:
1⃣عناصر در بردار در براکت ها ([ ]) قرار می گیرند.
2⃣عناصر با کاما یا اسپیس از هم جدا میشوند.
✔️بردارها با عملگر کولون ( : ) نیز قابل مقدار دهی هستند.
x = 1:10;
y = 1:0.5:4;
به رابطه اعداد تولید شده دقت کنید و ببینید اگر در حالتی مانند x که فقط دو عدد داریم با چه گامهایی بردار ساخته میشود.
@MatlabTips
#For_beginners, #Vector
نویسنده:(A-1)
🔵"2>A>3"پاسخ غیر منتظره 🔵
سطح پیچیدگی:🌕🌒🌑🌑🌑
پیشنیاز:(آشنایی با مفاهیم و کدنویسی)
برای:(مقدماتی و پیشرفته)
به عنوان بخشی از برنامه سعی کنید میخواهید ببینید که آیا یک مقدار بین دو مقدار دیگر قرار میگیرد یا خیر. فرض کنید A مقداری است که میخواهیم چک کنیم که بین دو مقدار low=3 و high=7 قرار میگیرد یا خیر.
از نگاه ریاضی میتوانید کد خود را بصورت زیر بیان کنید:
خوب می خواهیم برای مقادیری از A که هم در این محدوده و هم در خارج از این محدوده باشند امتحان کنیم. می خواهم این کار را در قالب یک تابع مستعار (anonymous) انجام دهم که از تکرارهای بی مورد نیز اجتناب شود.
خروجیها:
هههه. امکان نداره که هم pi و هم 17 بین 3 و 7 باشد. پس جریان چیه. قبل از اینکه آقای (A-1) پاسخ دهد، لختی تامل کنید بلکه جواب را یافتید.
@MatlabTips
#For_intermediate , #For_advanced , #Common_mistake
ادامه دارد...
نویسنده: (A-1)
سطح پیچیدگی:🌕🌒🌑🌑🌑
پیشنیاز:(آشنایی با مفاهیم و کدنویسی)
برای:(مقدماتی و پیشرفته)
به عنوان بخشی از برنامه سعی کنید میخواهید ببینید که آیا یک مقدار بین دو مقدار دیگر قرار میگیرد یا خیر. فرض کنید A مقداری است که میخواهیم چک کنیم که بین دو مقدار low=3 و high=7 قرار میگیرد یا خیر.
low = 3;
high = 7;
از نگاه ریاضی میتوانید کد خود را بصورت زیر بیان کنید:
low < A < high
خوب می خواهیم برای مقادیری از A که هم در این محدوده و هم در خارج از این محدوده باشند امتحان کنیم. می خواهم این کار را در قالب یک تابع مستعار (anonymous) انجام دهم که از تکرارهای بی مورد نیز اجتناب شود.
myExpr = @(x) low < x < high;
inResult = myExpr(pi)
outResult = myExpr(17)
خروجیها:
inResult =
1
outResult =
1
هههه. امکان نداره که هم pi و هم 17 بین 3 و 7 باشد. پس جریان چیه. قبل از اینکه آقای (A-1) پاسخ دهد، لختی تامل کنید بلکه جواب را یافتید.
@MatlabTips
#For_intermediate , #For_advanced , #Common_mistake
ادامه دارد...
نویسنده: (A-1)
قسمت اول عبارت را در نظر بگیرید:
میبینیم که برای هر دو ورودی جواب درست است. یعنی هم pi و هم 17 از مقدار low=3 بزرگتر هستند. در قسمت بعد این pi و 17 نیستند که با high مقایسه میشوند بلکه step1In و step1Out با آنها مقایسه می شود.
✔️دستور زیر را در پنجره فرمان اجرا کنید:
نتایج گام اول منطقی به نظر میرسد(اعداد از low بزرگتر هستند؟) و جواب برای هر دو عدد بله یا true می باشد که بصورت عبارات منطقی نمایش داده می شود. اما در گام دوم (مقایسه با عدد high) خروجی گام اول (که یک عبارت منطقی است) مورد مقایسه قرار میگیرد و ما باید از خود بپرسیم آیا 1(یک منطقی) از high کوچکتر است؟
چگونه یک جواب مناسب بگیریم؟
✔️باید دو عبارت منطقی را به روشی متفاوت از آنچه در بالا بود با هم ترکیب کنیم:
در این برنامه بررسی می کنیم که آیا عدد از low بزرگتر است و بصورت مجزا بررسی میکنیم که همان عدد از high کوچکتر است. بعد از اینکه دو جواب منطقی گرفتیم آنها را با هم ترکیب میکنیم.
@MatlabTips
#Common_mistake
#For_advanced, #For_intermediate,
نویسنده:(A-1)
>>step1In = low < pi
>>step1Out = low < 17
step1In =
1
step1Out =
1
میبینیم که برای هر دو ورودی جواب درست است. یعنی هم pi و هم 17 از مقدار low=3 بزرگتر هستند. در قسمت بعد این pi و 17 نیستند که با high مقایسه میشوند بلکه step1In و step1Out با آنها مقایسه می شود.
✔️دستور زیر را در پنجره فرمان اجرا کنید:
>> whos step1*
Name Size Bytes Class Attributes
step1In 1x1 1 logical
step1Out 1x1 1 logical
نتایج گام اول منطقی به نظر میرسد(اعداد از low بزرگتر هستند؟) و جواب برای هر دو عدد بله یا true می باشد که بصورت عبارات منطقی نمایش داده می شود. اما در گام دوم (مقایسه با عدد high) خروجی گام اول (که یک عبارت منطقی است) مورد مقایسه قرار میگیرد و ما باید از خود بپرسیم آیا 1(یک منطقی) از high کوچکتر است؟
چگونه یک جواب مناسب بگیریم؟
✔️باید دو عبارت منطقی را به روشی متفاوت از آنچه در بالا بود با هم ترکیب کنیم:
>>myExprCorrect = @(x) (low < x) & (x < high)
>>inResult1 = myExprCorrect(pi)
>>outResult1 = myExprCorrect(17)
myExprCorrect =
@(x)(low<x)&(x<high)
inResult1 =
1
outResult1 =
0
در این برنامه بررسی می کنیم که آیا عدد از low بزرگتر است و بصورت مجزا بررسی میکنیم که همان عدد از high کوچکتر است. بعد از اینکه دو جواب منطقی گرفتیم آنها را با هم ترکیب میکنیم.
@MatlabTips
#Common_mistake
#For_advanced, #For_intermediate,
نویسنده:(A-1)
🔵کدهای اسکی (ASCII): دابل (double) و کاراکتر char🔵
سطح پیچیدگی:🌓🌑🌑🌑🌑
پیشنیاز: (آشنایی با انواع داده)
برای: (مقدماتی و پیشرفته)
یک کارکتر در متلب با یک مقدار عددی 16 بیتی نمایش داده می شود. کد کاراکترها از 1 شروع می شود. برای مثل کدهای اسکی برای حروف A تا Z بصورت اعداد صحیح متوالی از 65 تا 90 است، در حالی که کدهای a تا z از 97 تا 122. می توانید کدهای اسکی برای یک رشته را با دستور double ببینید.
✔️مثال
✔️و بالعکس با استفاده از دستور char می توانید رشته متناظر از اعداد داده شده را ببینید:
✔️به این مثال دقت کنید که یک خروجی جالب تولید میکند (به آن فکر کنید):
@MatlabTips
#For_advanced ,#For_intermediate
#ASCII, #Double
نویسنده:(A-1)
سطح پیچیدگی:🌓🌑🌑🌑🌑
پیشنیاز: (آشنایی با انواع داده)
برای: (مقدماتی و پیشرفته)
یک کارکتر در متلب با یک مقدار عددی 16 بیتی نمایش داده می شود. کد کاراکترها از 1 شروع می شود. برای مثل کدهای اسکی برای حروف A تا Z بصورت اعداد صحیح متوالی از 65 تا 90 است، در حالی که کدهای a تا z از 97 تا 122. می توانید کدهای اسکی برای یک رشته را با دستور double ببینید.
✔️مثال
>> double('MatlabTips')
ans =
77 97 116 108 97 98 84 105 112 115
✔️و بالعکس با استفاده از دستور char می توانید رشته متناظر از اعداد داده شده را ببینید:
>> char([106 97 98 98 97 114])
✔️به این مثال دقت کنید که یک خروجی جالب تولید میکند (به آن فکر کنید):
>> x = char(ones(4,20)*double('#'))
x =
####################
####################
####################
####################
@MatlabTips
#For_advanced ,#For_intermediate
#ASCII, #Double
نویسنده:(A-1)
MatlabTips
MATLAB_Pre_Elementary_Part5_(A-1).mp4
آخرین ویدئوی مربوط به سطح پیش مقدماتی (Pre_Elementary).
🔵دستور disp🔵
سطح پیچیدگی:🌓🌑🌑🌑🌑
پیشنیاز:(آشنایی مقدماتی با کدنویسی)
برای:(مبتدیان و مقدماتی)
فرم کلی استفاده از دستور disp برای متغیر X بصورت زیر است:
هنگامی که از disp استفاده میکنید، نام متغیر نمایش داده نمیشود و خط اضافه ای قبل از اینکه مقدار را ببینید مشاهده نمیکنید.
✔️به مثال زیر دقت کنید:
✔️همچنین از disp برای نمایش پیغمامی که درون آپستروف قرار گرفته است( به آن رشته میگویند) نیز استفاده کنید.
✔️برای اینکه همزمان از یک مقدار عددی و یک رشته در این دستور استفاده کنید از تکنیک زیر استفاده کنید:
همانطور که پیشتر هم دیدیدم با استفاده از براکت می توانیم یک بردار بسازیم. دقت کنید که تمام عناصر مربوط به آرایه در متلب یا باید عدد باشند یا رشته و به همین دلیل در مثال بالا مجبور شدیم عدد را به رشته تبدیل کنیم.
@MatlabTips
#For_beginners , #For_intermediate
#Disp, #Vector
نویسنده:(A-1)
سطح پیچیدگی:🌓🌑🌑🌑🌑
پیشنیاز:(آشنایی مقدماتی با کدنویسی)
برای:(مبتدیان و مقدماتی)
فرم کلی استفاده از دستور disp برای متغیر X بصورت زیر است:
disp(x)
هنگامی که از disp استفاده میکنید، نام متغیر نمایش داده نمیشود و خط اضافه ای قبل از اینکه مقدار را ببینید مشاهده نمیکنید.
✔️به مثال زیر دقت کنید:
>> a = 1
a =
1
>> disp(a)
1
✔️همچنین از disp برای نمایش پیغمامی که درون آپستروف قرار گرفته است( به آن رشته میگویند) نیز استفاده کنید.
disp('MatlabTips is a really useful channel')
✔️برای اینکه همزمان از یک مقدار عددی و یک رشته در این دستور استفاده کنید از تکنیک زیر استفاده کنید:
x=2;
disp( [’The answer is ’, num2str(x)] );
همانطور که پیشتر هم دیدیدم با استفاده از براکت می توانیم یک بردار بسازیم. دقت کنید که تمام عناصر مربوط به آرایه در متلب یا باید عدد باشند یا رشته و به همین دلیل در مثال بالا مجبور شدیم عدد را به رشته تبدیل کنیم.
@MatlabTips
#For_beginners , #For_intermediate
#Disp, #Vector
نویسنده:(A-1)
#Coming_soon
🔵ابزار curve fitting🔵
پیشنیاز:(آشنایی مقدماتی با متلب، آشنایی مقدماتی با مفاهیم آماری)
برای:(مهندسین مالی، اقتصاد و فنی مهندسی)
1⃣جعبه ابزار curve fitting دارای توابع و برنامه هایی برای برازش منحنی ها و سطوحی از داده هاست. این جعبه ابزار به شما این امکان را می دهد که دادهها را تحلیل (داده سنجی)، پیش پردازش و پسا پردازش، حذف دادههای پرت و ... کنید.
2⃣میتوانید با استفاده از کتابخانه های قدرتمندی که دارد تحلیل رگرسیون با استفاده از مدلهای خطی و غیر خطی و یا با استفاده از مدل سفارشی خودتان انجام دهید.
3⃣بعد از برازش میتوانید روشهای متعددی برای پساپردازش اعم از رسم، درونیابی و برونیابی، تخمین بازه اطمینان و محاسبه انتگرال و مشتق پیاده سازی کنید.
✔️همه اینها به زودی در کانال @MatlabTips
ما را دنبال کنید:
@MatlabTips
#Coming_soon , #Curve_fitting, #Regression
نویسنده:(A-1)
🔵ابزار curve fitting🔵
پیشنیاز:(آشنایی مقدماتی با متلب، آشنایی مقدماتی با مفاهیم آماری)
برای:(مهندسین مالی، اقتصاد و فنی مهندسی)
1⃣جعبه ابزار curve fitting دارای توابع و برنامه هایی برای برازش منحنی ها و سطوحی از داده هاست. این جعبه ابزار به شما این امکان را می دهد که دادهها را تحلیل (داده سنجی)، پیش پردازش و پسا پردازش، حذف دادههای پرت و ... کنید.
2⃣میتوانید با استفاده از کتابخانه های قدرتمندی که دارد تحلیل رگرسیون با استفاده از مدلهای خطی و غیر خطی و یا با استفاده از مدل سفارشی خودتان انجام دهید.
3⃣بعد از برازش میتوانید روشهای متعددی برای پساپردازش اعم از رسم، درونیابی و برونیابی، تخمین بازه اطمینان و محاسبه انتگرال و مشتق پیاده سازی کنید.
✔️همه اینها به زودی در کانال @MatlabTips
ما را دنبال کنید:
@MatlabTips
#Coming_soon , #Curve_fitting, #Regression
نویسنده:(A-1)
🔵یک مثال🔵
سطح پیچیدگی:🌕🌑🌑🌑🌑
پیشنیاز:(آشنایی با کدنویسی)
برای:(مبتدیان و مقدماتی)
✔️یک سنگ را بصورت عمودی به هوا با سرعت اولیه u به هوا پرتاب می کنیم، فاصله طی شده s بعد از گذشت t ثانیه از رابطه زیر حاصل می شود:
که g شتاب گرانش است. از مقاومت هوا صرف نظر شده است. در زیر کد این مثال آورده شده است:
ادامه دارد...
سطح پیچیدگی:🌕🌑🌑🌑🌑
پیشنیاز:(آشنایی با کدنویسی)
برای:(مبتدیان و مقدماتی)
✔️یک سنگ را بصورت عمودی به هوا با سرعت اولیه u به هوا پرتاب می کنیم، فاصله طی شده s بعد از گذشت t ثانیه از رابطه زیر حاصل می شود:
s = ut-gt^2/2
که g شتاب گرانش است. از مقاومت هوا صرف نظر شده است. در زیر کد این مثال آورده شده است:
% Vertical motion under gravity
g = 9.81; % acceleration due
% to gravity
u = 60; % initial velocity in
% metres/sec
t = 0 : 0.1 : 12.3; % time in seconds
s = u * t - g / 2 * t .^2; % vertical displacement
% in metres
plot(t, s), title('Vertical motion under gravity' )
xlabel('time' ), ylabel('vertical displacement' )
grid
disp( [t' s'] ) % display a table
ادامه دارد...