Easter egg
noun
1.
an artificial chocolate egg or decorated hard-boiled egg given at Easter.
2.
an unexpected or undocumented feature in a piece of computer software or on a DVD, included as a joke or a bonus.
noun
1.
an artificial chocolate egg or decorated hard-boiled egg given at Easter.
2.
an unexpected or undocumented feature in a piece of computer software or on a DVD, included as a joke or a bonus.
تخم مرغ عید (easter egg) یک اصطلاح در نرم افزار است که به یک پیام مخفی یا یک حالت طنزگونه اطلاق می شود که طراح تعمدی آن را در برنامه لحاظ کرده است. MatlabTips@
@MatlabTips
fifteen
با وارد کردن این دستور در پنجره matlab یک بازی کامپیوتری ظاهر می شود که هدف آن مرتب کردن اعداد 1 تا 15 می باشد.
fifteen
با وارد کردن این دستور در پنجره matlab یک بازی کامپیوتری ظاهر می شود که هدف آن مرتب کردن اعداد 1 تا 15 می باشد.
@MatlabTips
خطای گرد کردن(Rounding error)
در MATLAB نیز مانند تمام زبان های برنامه نویسی دیگر، اعداد بسته به نوع (double, int16 ,…) بصورت دنباله ای از 0 و 1 نمایش داده می شود. هر نوع ذاتا برای یک دقت خاص استفاده می شود. به همین خاطر، عملیات ریاضی بر روی این اعداد ممکن است منجر به نتایجی شود که به دور از انتظار ما باشد. در این پست این رفتارها را شناسایی خواهیم کرد تا از مشکلات بالقوه آنها دوری کنیم:
@MatlabTips
مثال:
x = 1; %initial value
cnt = 0; %counter
while x ~= 2
x = x + 0.1;
cnt = cnt + 1; %count up
end
انتظار داریم بعد از پایان برنامه مقدار cnt برابر 10 شود، اما این برنامه تا ابد ادامه مییابد. عدد 0.1 با یک دقت مشخصی گرد میشود و از آنجایی که این عدد هنگامی که به زبان ماشین تبدیل میشود دقیقا برابر 0.1 نیست بنابراین هیچ وقت شرط حلقه برقرار نمی شود.
برای اجتناب از چنین حالتهایی باید معیار شرط را مناسب انتخاب کرد. مثلا در مثال بالا " while x <2 " میتواند مناسب تر باشد.
در مثال بالا به جای "0.1" از "0.25" استفاده کنید. دقت کنید که عدد "0.25" بطور دقیق با دقت ماشین های امروزی قابل نمایش است.
@MatlabTips
خطای گرد کردن(Rounding error)
در MATLAB نیز مانند تمام زبان های برنامه نویسی دیگر، اعداد بسته به نوع (double, int16 ,…) بصورت دنباله ای از 0 و 1 نمایش داده می شود. هر نوع ذاتا برای یک دقت خاص استفاده می شود. به همین خاطر، عملیات ریاضی بر روی این اعداد ممکن است منجر به نتایجی شود که به دور از انتظار ما باشد. در این پست این رفتارها را شناسایی خواهیم کرد تا از مشکلات بالقوه آنها دوری کنیم:
@MatlabTips
مثال:
x = 1; %initial value
cnt = 0; %counter
while x ~= 2
x = x + 0.1;
cnt = cnt + 1; %count up
end
انتظار داریم بعد از پایان برنامه مقدار cnt برابر 10 شود، اما این برنامه تا ابد ادامه مییابد. عدد 0.1 با یک دقت مشخصی گرد میشود و از آنجایی که این عدد هنگامی که به زبان ماشین تبدیل میشود دقیقا برابر 0.1 نیست بنابراین هیچ وقت شرط حلقه برقرار نمی شود.
برای اجتناب از چنین حالتهایی باید معیار شرط را مناسب انتخاب کرد. مثلا در مثال بالا " while x <2 " میتواند مناسب تر باشد.
در مثال بالا به جای "0.1" از "0.25" استفاده کنید. دقت کنید که عدد "0.25" بطور دقیق با دقت ماشین های امروزی قابل نمایش است.
@MatlabTips
#SpeedUp
@MatlabTips
برای تسریع در عملکرد کدهایتان، نکات زیر را لحاظ کنید:
1⃣محیط
هنگام اجرای برنامه در MATLAB دقت داشته باشید که همزمان برنامه دیگری در حال اجرا نباشد که از منابع پردازشی زیادی استفاده کند.
2⃣ساختار کد
به جای اسکریپت از تابع استفاده کنید. به طور کلی توابع سریعتر هستند.
✔️از توابع تو در تو استفاده نکنید و به جای آن از توابع محلی استفاده کنید.(مخصوصا زمانی که توابع نیازی به دسترسی به متغیرهای درون تابع اصلی ندارند).
✔️از برنامهنویسی ماژولار استفاده کنید. کد خود را به فایلهای ریزتر تقسیم کنید.
@MatlabTips
3⃣تمرینهای برنامهنویسی برای بهبود عملکرد
از تکنیکهای زیر برای بهبود عملکرد کد خود استفاده کنید:
✔️پیشتخصیص(preallocate):
به جای اینکه دائما اندازه آرایهها تغییر کند، یک مقدار ثابت برای اندازه آرایه مورد نظر در نظر گرفته که مدام در حافظه عملیات تخصیص صورت نگیرد.
✔️بردارسازی:
به جای استفاده از حلقهها سعی کنید تا جایی که ممکن است از عملیات برداری و ماتریسی استفاده کنید.
✔️عملیات مستقل را بیرون از حلقه قرار دهید:
در صورتی که با تکرارهای حلقه بخشی از کد دچار تغییر نمیشود، آن قسمت را از حلقه بیرون بیاورید.
✔️از متغیرهای global استفاده نکیند:
حداقل کردن استفاده از این متغیرها توصیه میشود. متغیرهای global عملکرد کد MATLAB را کاهش میدهد.
@MatlabTips
@MatlabTips
برای تسریع در عملکرد کدهایتان، نکات زیر را لحاظ کنید:
1⃣محیط
هنگام اجرای برنامه در MATLAB دقت داشته باشید که همزمان برنامه دیگری در حال اجرا نباشد که از منابع پردازشی زیادی استفاده کند.
2⃣ساختار کد
به جای اسکریپت از تابع استفاده کنید. به طور کلی توابع سریعتر هستند.
✔️از توابع تو در تو استفاده نکنید و به جای آن از توابع محلی استفاده کنید.(مخصوصا زمانی که توابع نیازی به دسترسی به متغیرهای درون تابع اصلی ندارند).
✔️از برنامهنویسی ماژولار استفاده کنید. کد خود را به فایلهای ریزتر تقسیم کنید.
@MatlabTips
3⃣تمرینهای برنامهنویسی برای بهبود عملکرد
از تکنیکهای زیر برای بهبود عملکرد کد خود استفاده کنید:
✔️پیشتخصیص(preallocate):
به جای اینکه دائما اندازه آرایهها تغییر کند، یک مقدار ثابت برای اندازه آرایه مورد نظر در نظر گرفته که مدام در حافظه عملیات تخصیص صورت نگیرد.
✔️بردارسازی:
به جای استفاده از حلقهها سعی کنید تا جایی که ممکن است از عملیات برداری و ماتریسی استفاده کنید.
✔️عملیات مستقل را بیرون از حلقه قرار دهید:
در صورتی که با تکرارهای حلقه بخشی از کد دچار تغییر نمیشود، آن قسمت را از حلقه بیرون بیاورید.
✔️از متغیرهای global استفاده نکیند:
حداقل کردن استفاده از این متغیرها توصیه میشود. متغیرهای global عملکرد کد MATLAB را کاهش میدهد.
@MatlabTips