اجرای متن درون یک رشته (String) یا آرایه کاراکتری (Character Array)، به عنوان کد اجرایی (کد متلب)، با دستور eval ، در متلب (MATLAB)
همان طور که می دانید، رشته ها (String) یا آرایه های کاراکتری (Character Array)، متغیرهایی هستند که از تعدادی کاراکتر (Character) تشکیل شده اند (یک متن). ممکن است در مواردی نیاز داشته باشیم که متن ذخیره شده در یک رشته (String) یا آرایه کاراکتری (Character Array) را به عنوان ((کد متلب)) اجرا کنیم، یعنی نرم افزار متلب (MATLAB)، آن متن ذخیره شده در رشته (String) یا آرایه کاراکتری (Character Array) را به عنوان کد متلب (MATLAB) در نظر گرفته و اجرا نماید. در این موارد، می توانیم از دستور eval
استفاده نماییم.
دستور eval
، یک رشته (String) یا آرایه کاراکتری (Character Array) را در ورودی خود دریافت کرده و سپس متن درون آن رشته (String) یا آرایه کاراکتری (Character Array) را به عنوان ((کد متلب)) در نظر گرفته و اجرا می کند.
به مثال زیر توجه کنید :
با دستور eval
، متن ذخیره شده در یک رشته (String) را به عنوان ((کد متلب)) اجرا می کنیم :
3 خط اول کدها، برای عدم تداخل برنامه فعلی با برنامه های قبلی اجرا شده در متلب (MATLAB) می باشد.
در کد بالا، دستور eval
، کد زیر را اجرا خواهد کرد :
نتیجه :
با دستور eval
، متن ذخیره شده در یک آرایه کاراکتری (Character Array) را به عنوان ((کد متلب)) اجرا می کنیم :
در کد بالا، دستور eval
، کد زیر را اجرا خواهد کرد :
نتیجه :
شاید برای شما این سوال پیش بیاید که وقتی می توانیم کدها را به صورت معمولی نوشته و اجرا کنیم، چرا باید کدها را در رشته ها (String) یا آرایه های کاراکتری (Character Array) ذخیره نموده و سپس از دستور eval
برای اجرای آنها استفاده نماییم. پاسخ این است که با توجه به آزادی عمل زیاد در ساخت رشته ها (String) و آرایه های کاراکتری (Character Array)، می توانیم بر اساس منطق کدهای برنامه، آزادی عمل زیادی در چگونگی ساخت و اجرای کدهای برنامه مورد نظرمان داشته باشیم. به عنوان مثال، کلید شماره 154 را بخوانید.
در واقع در مواردی که نیاز به تغییرات زیاد و متعدد در خود کدهای اجرایی است، می توان کدها را به صورت رشته (String) یا آرایه کاراکتری (Character Array) طراحی نموده و سپس با استفاده از دستور eval
اجرا نمود.
اینکار رو توی پایتون چطوری انجام بدیم ؟
واقعا بهش احتیاج دارم