آموزش متلب (MATLAB)
۵۴۳ آموزش
نمایش دسته بندی ها (۵۴۳ آموزش)

تعریف تعداد زیادی متغیر (Variable) جدید، درون یک حلقه for ، با دستور eval ، در متلب (MATLAB)

گاهی نیاز داریم که تعداد زیادی متغیر (Variable) را تعریف کنیم، بنابراین راه مناسب این است که از یک حلقه for استفاده کنیم، اما این سوال پیش می آید که چگونه در حلقه for ، نام های متفاوتی برای این تعداد زیاد از متغیرها، تعریف نماییم. شیوه کدنویسی متلب (MATLAB) را با یک مثال شرح می دهیم :

مثال

یک برنامه متلب می نویسیم که متغیرهای با نام x1 و x2 و ... تا x9 را تعریف کرده و مقادیر آنها را برابر 1 و 2 و ... تا 9 قرار دهد :

3 خط اول کدها، برای عدم تداخل برنامه فعلی با برنامه های قبلی اجرا شده در متلب (MATLAB) می باشد.

درون حلقه for ، از دستور eval استفاده کرده ایم که این آزادی عمل را به ما می دهد که دستورهای متلب را که می خواهیم اجرا شود، با یک سری رشته (string) تعریف کنیم. در واقع، چون دیگر با رشته ها سر و کار داریم، بنابراین با تولید رشته های دلخواه در پرانتز دستور eval ، می توانیم کدهای متلب مورد نظرمان را اجرا نماییم.

دستور num2str ، برای تبدیل اعداد به رشته (string) به کار رفته است.

دستور whos ، برای نمایش متغیرهای تعریف شده در متلب می باشد تا چک کنیم که آیا متغیرهای مورد نظرمان، تعریف شده اند یا خیر.

نتیجه :

مشاهده می کنید که متغیرهای x1 تا x9 درون متلب، تعریف شده اند.

نویسنده علیرضا گلمکانی
شماره کلید 154
گزینه ها
به اشتراک گذاری (Share) در شبکه های اجتماعی
نظرات 3 3 0
حسام
۱۳۹۶/۰۲/۱۵
۱۷:۱۲

امکانش هست که توابعی رو که با eval تعریف کردیم رو بشه دوباره بصورت پارامتری فراخوانی کرد؟
مثلا k12=10 و K13=20 و K14=30 تعریف کردیم 
 بصورت k14  که داخل حلقه نوشتم جوابش رو بعد از اجرای برنامه میاره 30 
ولی میخوام با k1y تعریف کنم که داخل حلقه زمانی که y=2 شد k12 رو فراخوانی کنه 

رامین
۱۳۹۷/۰۹/۰۳
۲۱:۲۶

چجوری میشه این متغیر ها رو تو یک ماتریس ذخیره کرد ؟

S
۱۴۰۰/۰۱/۲۲
۱۶:۵۶

با سلام 
ببخشید اگر به جای اعداد ۱ تا۹ بخواهیم به X1 تا X9 هر کدام یک ماتریس اختصاص دهیم ، مثلا X1 برابر یک ماتریس مشخص باشد و همینطور تا x9 ، چکار باید بکنیم . من میخوام از دستور ((cell2mat(A(i یک ماتریس که حاوی تعدادی سلول هست را هر بار  با دستور cell2mat به یک ماتریس تبدیل کرده و داخل X1تا X9 قرار دهم . ممنون میشوم راهنمایی بفرمایید

ارسال نظر جدید (بدون نیاز به عضو بودن در وب سایت)