بازگرداندن دوباره قابلیت پاک (Clear) شدن توابع (Function) از حافظه (Memory) (عدم جلوگیری از عملکرد دستور clear برای آنها) (خنثی کردن دستور mlock برای تابع)، با دستور munlock ، در متلب (MATLAB)
در کلید شماره 26395 ، چگونگی جلوگیری از پاک (Clear) شدن توابع (Function) از حافظه (Memory) (جلوگیری از عملکرد دستور clear برای آنها)، با استفاده از دستور mlock در متلب (MATLAB) را شرح دادیم. اما ممکن است بعد از اجرای این مورد برای یک تابع (Function) (با ذکر کردن دستور mlock در کدهای تعریف آن تابع)، بخواهیم که دوباره این امکان را به وجود بیاوریم که در صورت استفاده از دستور clear ، آن تابع از حافظه (Memory) پاک شود. برای این منظور، باید دستور munlock در متلب (MATLAB) را به کار ببریم.
یعنی با فرض اینکه مثلا تابع دارای نام add باشد (کدهای تعریف آن در یک m-file با نام add.m) ( کلید شماره 15 ) و دستور mlock به صورت زیر در کدهای تعریف آن ذکر شده باشد :
آنگاه در هنگام استفاده از این تابع، می توانیم به صورت زیر، تعیین کنیم که دوباره امکان پاک شدن آن از حافظه (Memory) توسط دستور clear ، به وجود بیاید :
به عنوان مثال، کد زیر را اجرا می کنیم :
3 خط اول کدها برای عدم تداخل برنامه فعلی با برنامه های قبلی اجرا شده در متلب (MATLAB) می باشد.
دستور clear all را بعد از استفاده از تابع add به کار برده ایم، زیرا وقتی از تابع add استفاده می شود، آنگاه در حافظه (Memory) قرار می گیرد و بنابراین بعد از آن باید دستور clear all برای پاک کردن از حافظه (Memory) اجرا گردد.
در کد بالا، دستور inmem برای به دست آوردن نام تمام توابع (Function) و MEX-file ها و کلاس های (Class) موجود در حافظه (Memory) به کار رفته است ( کلید شماره 26394 ).
نتیجه :
همان طور که مشاهده می کنید، تابع add از حافظه (Memory) پاک شده است.