یکی از مشکلات شایع در برنامه های متلب سنگین خطای حافظه می باشد.
چگونه بفهمیم کدام متغیر در MATLAB بیشترین حافظه RAM را مصرف میکند؟
whos
گاهی هنگام کار با MATLAB ناگهان با کند شدن سیستم یا پر شدن حافظه RAM مواجه میشویم. در چنین شرایطی یکی از اولین کارهایی که میتوان انجام داد، بررسی حجم متغیرهای موجود در Workspace است.
برای این کار کافی است دستور زیر را در Command Window وارد کنید:
whos
دستور whos اطلاعاتی مانند نام متغیر، ابعاد، نوع داده و میزان حافظه اشغالشده توسط هر متغیر را نمایش میدهد.
برای مثال ممکن است خروجی مشابه زیر ببینید:
Name Size Bytes Class
A 1000x1000 8000000 double
B 100x100 80000 double
image 4000x6000x3 72000000 uint8
ستون مهم برای ما Bytes است. هرچه مقدار این ستون بیشتر باشد، آن متغیر فضای بیشتری از حافظه RAM را اشغال کرده است.
در مثال بالا، متغیر image بیشترین حافظه را مصرف میکند.
اگر دیگر به یک متغیر بزرگ نیاز ندارید، میتوانید آن را با دستور زیر از حافظه حذف کنید:
clear image
همچنین برای مشاهده اطلاعات یک متغیر خاص میتوانید بنویسید:
whos image
نکته
اگر با ماتریسهای بزرگ، تصاویر با رزولوشن بالا یا دادههای حجیم کار میکنید، استفاده از whos یکی از سریعترین روشها برای پیدا کردن متغیرهایی است که حافظه زیادی مصرف میکنند.
پس هر وقت احساس کردید MATLAB بیش از حد RAM مصرف میکند، قبل از هر کار دیگری یک بار این دستور ساده را امتحان کنید:
whos