تعامل MATLAB (متلب) با دات نت - قسمت اول
اندازه‌ی قلم متن
تخمین مدت زمان مطالعه‌ی مطلب: یک دقیقه

متلب (MATLAB) یکی از پرکاربردترین نرم افزارهای محاسباتی در حوزه مهندسی بویژه برق، ریاضیات، مکانیک و ... می‌باشد.
بدون شک تعامل نرم افزارهای مختلف با هم در جهت کاربردی‌تر کردن یک پروژه کمک بسزایی به کاربران نهایی می‌کند. قطعاً استفاده از علوم روز همچون شبکه‌های عصبی، منطق فازی و الگوریتم‌های تکاملی همچون ژنتیک بدون استفاده از متلب بسیار سخت و پیچیده خواهد بود. دستورات و تابع‌های (functions) آماده و ساده در متلب در جهت استفاده از این علوم تقریباً هر پژوهشگر و کاربری را ترغیب به استفاده از متلب می‌کند. طبعاً استفاده از کتابخانه‌های دانت در متلب کمک بسیاری به توسعه دهندگان این حوزه می‌کند.
در این سری از مطالب سعی بر بررسی این تعامل شده است.
بطور کلی دو نوع تعامل در این زمینه وجود دارد :
1- استفاده از اسمبلی‌های دات نت در متلب تحت عنوان MATLAB .NET Interface
2- استفاده از پکیج تابع‌های متلب در پروژه‌های مبتنی بر دات نت تحت عنوان MATLAB Builder NE
در مورد اول از دات نت فقط در پلت فورم ویندوز استفاده می‌شود. کلیه امکانات دات نت 2 را ساپورت میکند و با ورژن‌های 3 و 3.5 سازگار است اما با ورژن 4 تنها بعضی از امکانات در دسترس است و هنوز مورد تست کلی قرار نگرفته است. کلیه امکانات دات نت در #C در متلب بجز یک سری از موارد که در جدول زیر ذکر شده است در دسترس است.

 
به عنوان مثال از کلاس speech synthesizer دات نت 3 در متلب بصورت زیر استفاده می‌کنیم :
function Speak(text)
             NET.addAssembly('System.Speech');
             speak = System.Speech.Synthesis.SpeechSynthesizer;
             speak.Volume = 100;
             Speak(speak,text);
end
سپس برای رندر کردن یک متن به صوت دستور زیر را اجرا می‌کنیم :
 Speak('You can use .NET Libraries in MATLAB');
در ارتباط با استفاده از توابع متلب در یک پروژه مبتنی بر دات نت در قسمت بعد توضیح داده خواهد شد.

منبع : Help متلب
  • #
    ‫۱۱ سال و ۵ ماه قبل، پنجشنبه ۱۶ خرداد ۱۳۹۲، ساعت ۰۵:۲۸
    در این کدی که تهیه کردید، Speak داخل متد Speak چطور فراخوانی شده بدون ارجاع به یک شیء؟ (سطر آخر متد). بعد در متلب نیازی به new نیست؟ فقط فراخوانی NET.addAssembly باعث شناسایی System.Speech.Synthesis.SpeechSynthesizer میشه؟
    • #
      ‫۱۱ سال و ۵ ماه قبل، پنجشنبه ۱۶ خرداد ۱۳۹۲، ساعت ۱۳:۴۸
      متلب به حروف کوچک و بزرگ حساس است. دقت کرده باشید speak داخل Speak است. در حقیقت Speak  نام تابع است. در متلب تابع NET.addAssembly  کار بارگذاری اسمبلی‌های یاد شده را دارد. خیر در متلب احتیاجی به new نیست. در کل برنامه نویسی در متلب کمی متفاوت با زبان‌های معمول(#C و ..) است.
      • #
        ‫۱۱ سال و ۵ ماه قبل، پنجشنبه ۱۶ خرداد ۱۳۹۲، ساعت ۱۴:۵۰
        اینجا در سطر آخر متد نباید نوشته می‌شد speak.Speak ؟ یا اینکه این Speak نوشته شده با دو پارامتر ، منظور تابعی دیگر هست؟
        • #
          ‫۱۱ سال و ۵ ماه قبل، پنجشنبه ۱۶ خرداد ۱۳۹۲، ساعت ۱۶:۴۸
          نه دوست عزیز همونطور که گفتم ساختار متلب متفاوت هست.
          منظور از Speak همون تابع است.
          کافیست تابع فوق را در یک M فایل (کدها در متلب با پسوند ام فایل ذخیره می‌شوند) ذخیره کنید. سپس در داخل متلب مسیر اجرای کد را به مسیر M فایل تغییر دهید و سپس دستور رندر کردن رو که بالا گفته شد در Command Window اجرا کنید. متن فوق به تابع Speak ارجاع داده می‌شود. 
  • #
    ‫۱۱ سال و ۵ ماه قبل، جمعه ۲۴ خرداد ۱۳۹۲، ساعت ۰۳:۰۷
    استفاده از Matlab در دات نت نیاز به نصب کلی خود Matlab داره؟
    • #
      ‫۱۱ سال و ۵ ماه قبل، شنبه ۲۵ خرداد ۱۳۹۲، ساعت ۰۲:۰۰
      در این مورد در قسمت بعد توضیح خواهم داد. بله احتیاج است. اگر تصمیم به نوشتن کدها و کامپایل کردن اونها دارید. خیر، اگر نویسنده کدها یک پکیج از پروژه متلب در اختیار شما قرار بدهد.