مقدمه
یکی از مفاهیم پایه و مهم در آموزش برنامه نویسی MATLAB، آشنایی با فضای کاری یا Workspace است. هر زمان که در MATLAB یک متغیر ایجاد میکنید، اطلاعات آن در حافظه برنامه قرار میگیرد و میتوانید از آن در محاسبات، اسکریپتها و دستورات مختلف استفاده کنید.
شناخت Workspace به شما کمک میکند متغیرهای موجود در برنامه را مدیریت کنید، اطلاعات آنها را بررسی کنید، متغیرهای غیرضروری را از حافظه حذف کنید و دادههای موردنیاز خود را برای استفاده در آینده ذخیره یا بازیابی کنید.
در این مقاله با مفهوم Workspace و مهمترین دستورات مرتبط با آن مانند who، whos، clear، save و load آشنا میشویم.
Workspace در MATLAB چیست؟
Workspace یا فضای کاری MATLAB محیطی است که متغیرهای ایجادشده در آن نگهداری میشوند. زمانی که یک متغیر را در Command Window ایجاد میکنید، MATLAB آن را در Workspace قرار میدهد.
برای مثال:
a = 5;
b = 10;
c = a + b;
پس از اجرای این دستورات، سه متغیر a، b و c در Workspace قرار میگیرند.
میتوانید این متغیرها را در پنجره Workspace نیز مشاهده کنید. این پنجره معمولاً اطلاعاتی مانند نام متغیر، اندازه، نوع داده و مقدار آن را در اختیار شما قرار میدهد.
Workspace یکی از بخشهای مهم محیط MATLAB است؛ زیرا امکان مشاهده و مدیریت دادههایی را فراهم میکند که در طول اجرای برنامه ایجاد شدهاند.
Workspace و Script در MATLAB
در MATLAB باید میان Base Workspace و Workspace مربوط به توابع تفاوت قائل شد.
وقتی متغیری را مستقیماً در Command Window ایجاد میکنید، این متغیر در Base Workspace قرار میگیرد.
برای مثال:
x = 20;
متغیر x در فضای کاری اصلی MATLAB ایجاد میشود.
اسکریپتها نیز به طور معمول با Workspace فعلی کار میکنند. بنابراین میتوانند به متغیرهای موجود در Base Workspace دسترسی داشته باشند و متغیرهای جدیدی ایجاد کنند.
اما توابع MATLAB Workspace مستقل خود را دارند. متغیرهایی که درون یک تابع ایجاد میشوند، به طور معمول در Workspace اصلی MATLAB قرار نمیگیرند.
برای مثال:
function result = calculate(x)
y = x * 2;
result = y;
end
در این مثال، متغیر y متعلق به فضای کاری داخلی تابع است و پس از پایان اجرای تابع، مانند یک متغیر عادی در Base Workspace باقی نمیماند.
این تفاوت در پروژههای بزرگ و هنگام کار با توابع اهمیت زیادی دارد.
چه زمانی متغیرهای Workspace حذف میشوند؟
متغیرهای موجود در Workspace تا زمانی که حذف نشوند، برای استفاده در محیط MATLAB در دسترس هستند.
برای حذف متغیرها میتوان از دستور clear استفاده کرد.
برای حذف تمام متغیرهای موجود در Workspace:
clear
و برای حذف چند متغیر مشخص:
clear a b c
در این حالت فقط متغیرهای a، b وc حذف میشوند.
همچنین میتوانید یک متغیر مشخص را حذف کنید:
clear a
بعد از اجرای این دستور، دیگر نمیتوان مستقیماً از متغیر a استفاده کرد، مگر اینکه دوباره آن را تعریف کنید یا از یک فایل ذخیرهشده بازیابی شود.
نکته مهم
استفاده ازclear با دقت بیشتری در پروژههای بزرگ توصیه میشود. حذف ناخواسته متغیرها میتواند باعث شود دادههایی که هنوز به آنها نیاز دارید از Workspace خارج شوند.
دستور Who در MATLAB چیست؟
دستور who برای نمایش نام متغیرهای موجود در Workspace استفاده میشود.
برای مثال، اگر متغیرهای زیر را ایجاد کنیم:
a = 5;
b = 10;
c = 15;
با اجرای:
who
MATLAB نام متغیرهای موجود در Workspace را نمایش میدهد.
به زبان ساده، who به شما میگوید:
چه متغیرهایی در Workspace وجود دارند؟
این دستور زمانی کاربرد زیادی دارد که در یک پروژه تعداد زیادی متغیر ایجاد کرده باشید و بخواهید فهرست آنها را سریع مشاهده کنید.
دستور Whos در MATLAB چیست؟
اگر علاوه بر نام متغیرها، اطلاعات بیشتری درباره آنها نیاز دارید، میتوانید از دستور whos استفاده کنید.
این دستور اطلاعاتی مانند موارد زیر را نمایش میدهد:
• نام متغیر
• اندازه متغیر
• مقدار حافظه مصرفی
• نوع داده
• ویژگیهای مرتبط با متغیر
برای مثال:
a = 5;
b = 10;
c = 15;
whos
خروجی میتواند اطلاعاتی مشابه زیر داشته باشد:
|
Name Size Bytes Class |
|
a 1x1 8 double |
|
b 1x1 8 double |
|
c 1x1 8 double |
بنابراین تفاوت اصلی این دو دستور را میتوان اینگونه خلاصه کرد:
who ← نمایش نام متغیرها
whos ← نمایش نام و مشخصات متغیرها
پنجره Workspace در MATLAB
علاوه بر استفاده از دستورات who و whos، میتوانید متغیرهای موجود را مستقیماً در Workspace Window مشاهده کنید.
این پنجره اطلاعاتی درباره متغیرهای فعال در اختیار شما قرار میدهد و امکان مدیریت آسانتر دادهها را فراهم میکند.
برای کاربران تازهکار، پنجره Workspace ابزار مناسبی برای مشاهده وضعیت متغیرهاست؛ زیرا بدون نیاز به اجرای دستور خاصی میتوانند متغیرهای ایجادشده را بررسی کنند.
ذخیره متغیرها در MATLAB با دستور Save
گاهی لازم است متغیرهای ایجادشده را برای استفاده در آینده ذخیره کنیم. در این شرایط میتوان از دستور save استفاده کرد.
MATLAB معمولاً اطلاعات را در فایلهایی با پسوند .mat ذخیره میکند.
برای ذخیره یک متغیر:
a = 5;
save myfile.mat a
در این مثال، متغیر a در فایل myfile.mat ذخیره میشود.
برای ذخیره چند متغیر:
a = 5;
b = 10;
c = 20;
save myfile.mat a b c
در این حالت هر سه متغیر در فایل ذخیره خواهند شد.
ذخیره تمام متغیرهای Workspace
اگر بخواهید تمام متغیرهای موجود در Workspace را ذخیره کنید، میتوانید نام متغیرها را در دستور save مشخص نکنید:
save myfile.mat
در این حالت متغیرهای موجود در Workspace در فایل myfile.mat ذخیره میشوند.
این قابلیت برای پروژههایی مفید است که میخواهید وضعیت فعلی دادهها را نگه دارید و بعداً ادامه کار را از همان نقطه انجام دهید.
بازیابی متغیرها با دستور Load
برای بازگرداندن دادههای ذخیرهشده به Workspace میتوان از دستورload استفاده کرد.
برای مثال:
load myfile.mat
پس از اجرای این دستور، متغیرهای ذخیرهشده در فایل در Workspace در دسترس قرار میگیرند.
برای بازیابی متغیر مشخص نیز میتوانید نام آن را تعیین کنید:
load myfile.mat a
در این حالت فقط متغیر a از فایل بازیابی میشود.
یک مثال کامل از Save و Load در MATLAB
فرض کنید سه متغیر داریم:
a = 5;
b = 4;
c = 7;
برای ذخیره متغیرهای a و c میتوان نوشت:
save myfile.mat a c
حالا اگر متغیرها را حذف کنیم:
clear a b c
دیگر این متغیرها در Workspace وجود ندارند.
برای بازیابی دادههای ذخیرهشده:
load myfile.mat
پس از اجرای دستور، متغیرهای ذخیرهشده یعنی a و c دوباره در Workspace قرار میگیرند.
میتوانید با استفاده از:
whos
بررسی کنید که متغیرها با موفقیت بازیابی شدهاند.
ساختار کلی دستورات Save و Load
ساختار کلی دستور save به شکل زیر است:
save filename variables
و ساختار load:
load filename variables
برای مثال:
save project_data.mat x y z
و برای بازیابی:
load project_data.mat x y z
اگر نام متغیرها را مشخص نکنید، MATLAB تمام متغیرهای قابل ذخیره را در فایل ذخیره یا هنگام load دادههای ذخیرهشده را بازیابی میکند.
چرا مدیریت Workspace در MATLAB اهمیت دارد؟
مدیریت صحیح Workspace فقط برای پروژههای ساده کاربرد ندارد. در پروژههای دانشگاهی، مهندسی و تحقیقاتی که تعداد زیادی داده و متغیر وجود دارد، کنترل فضای کاری اهمیت بیشتری پیدا میکند.
با استفاده از who و whos میتوانید متغیرهای موجود را بررسی کنید، باclear دادههای غیرضروری را حذف کنید و با save و load اطلاعات موردنیاز را برای استفادههای بعدی نگهداری کنید.
این دستورات به شما کمک میکنند محیط MATLAB منظمتر باشد و احتمال ایجاد خطا به دلیل وجود متغیرهای قدیمی یا ناخواسته کاهش پیدا کند.
جمعبندی
در این بخش از آموزش برنامه نویسی MATLAB با مفهوم Workspace و روش مدیریت متغیرها آشنا شدیم.
Workspace محیطی است که متغیرهای مورد استفاده MATLAB در آن نگهداری میشوند. با دستور who میتوان نام متغیرهای موجود را مشاهده کرد و با whos اطلاعات دقیقتری مانند اندازه، نوع داده و میزان حافظه مصرفی آنها را بررسی کرد.
همچنین یاد گرفتیم که دستور clear برای حذف متغیرها استفاده میشود. در مقابل، دستورات save و load امکان ذخیره و بازیابی دادهها را در فایلهای .mat فراهم میکنند.
تسلط بر این دستورات یکی از مهارتهای پایه و کاربردی برای افرادی است که قصد دارند MATLAB را به شکل اصولی و حرفهای یاد بگیرند.
یادگیری MATLAB را کاربردی شروع کنید
اگر میخواهید برنامهنویسی MATLAB را اصولی و کاربردی یاد بگیرید، میتوانید در وبینار برنامهنویسی MATLAB پژواک دانش شرکت کنید.
با یادگیری اصولی MATLAB، مفاهیم پایه را بهتر درک کنید و مسیر خود را برای انجام پروژههای دانشگاهی و مهندسی هموارتر کنید.
برای ثبتنام در وبینار برنامهنویسی MATLAB پژواک دانش، همین حالا اقدام کنید.