اجرای محتوای یک رشته (String) به عنوان کدهای متلب (MATLAB)، با حذف موارد مربوط به پنجره دستورات (Command Window)، با دستور evalc ، در متلب (MATLAB)
دستور eval را در پست های قبل معرفی کردیم معرفی کردیم که یک رشته (String) را دریافت می کرد و محتوای رشته (String) را به عنوان دستورات متلب (MATLAB) در نظر می گرفت و آنها را به صورت کد متلب (MATLAB) اجرا می کرد.
دستور evalc در متلب (MATLAB) نیز همانند دستور eval عمل می کند، تنها با این تفاوت که موارد مربوط به پنجره دستورات (Command Window) اجرا نمی شوند. یعنی مثلا هیچ خروجی بر اساس اجرای آن کدهای متلب (MATLAB)، در خروجی متلب (پنجره دستورات (Command Window)) مشاهده نخواهیم کرد.
تنها پیام های خطا (Error Message) در خروجی نمایش داده می شوند.
البته این عبارت هایی که باید در خروجی نمایش داده می شدند، در یک آرایه کاراکتری (Character Array) (در واقع یک رشته (String)) ذخیره می شوند (کاراکتر n\ برای جداسازی خط ها در آن، به کار می رود) و بنابراین بر اساس آن آرایه کاراکتری (Character Array) (رشته (String))، می توانیم خروجی های اجرای کدها را بررسی نماییم.
هنگام استفاده از دستور evalc ، دستورات diary و more و input ، غیرفعال می باشند.
به مثال زیر توجه کنید :
برای نشان دادن تفاوت دو دستور eval و evalc (در مورد نمایش اطلاعات در خروجی)، دو کد متلب (MATLAB) را در ادامه اجرا می کنیم :
کدهای شامل دستور eval :
close all
clc
eval(‘A = [1 2 3; 4 5 6; 7 8 9]’);
3 خط اول کدها، برای عدم تداخل برنامه فعلی با برنامه های قبلی اجرا شده در متلب (MATLAB) می باشد.
دقت کنید که علامت ; را در انتهای خط اصلی کدها نوشته ایم، بنابراین از خود اجرای دستور اصلی، چیزی در خروجی نمایش داده نمی شود، اما بر اساس اجرای کدهای موجود در رشته (String)، می تواند مواردی در خروجی چاپ گردد.
نتیجه :
1 2 3
4 5 6
7 8 9
کدهای شامل دستور evalc :
close all
clc
evalc(‘A = [1 2 3; 4 5 6; 7 8 9]’);
نتیجه :
هیچ خروجی نمایش داده نمی شود :
close all
clc
T = evalc(‘A = [1 2 3; 4 5 6; 7 8 9]’);
T
نتیجه :
A =
1 2 3
4 5 6
7 8 9
close all
clc
T = evalc(‘A = 1; B = 2; C = 3; disp(A); disp(B); disp(C);’);
T
دستور disp برای نمایش مقدار یک متغیر (Variable) در خروجی به کار می رود (بدون اینکه نام خود متغیر (Variable) را در خروجی ذکر کند).
نتیجه :
1
2
3
همان طور که قبلا تذکر دادیم، اگر یک خطا در هنگام اجرای کدها رخ دهد، بر خلاف سایر موارد، پیام خطا در خروجی متلب (پنجره دستورات (Command Window)) نمایش داده می شود.
به عنوان مثال، کد متلب (MATLAB) زیر را اجرا می کنیم :
close all
clc
T = evalc(‘A’);
چون هیچ متغیری با نام A تعریف نکرده ایم، بنابراین عبارت A که باید مقدار یک متغیر با نام A را در خروجی نمایش دهد، باعث رخ دادن خطا می شود.
نتیجه :
Undefined function or variable ‘A’.
Error in kelidestan (line 5)
T = evalc(‘A’);