تو این پست سیشارپ رو به متلب متصل خواهیم کرد، اما قبل شروع ذکر چند نکته ضروریست:
- حتما نرم افزار متلب روی سیستم باید نصب باشه
- حتما از dotNET framework 3.5 باید استفاده کنید
حالا اینی که میگیم چجوریه؟!!
- پروژه جدید ایجاد کنید
- از پنجره solution explorer روی Refrences کلیک راست کنید و گزینه add reference کلیک کنید
- وارد شاخه COM بشید
- آیتم Matlab Application را پیدا کنید و به پروژتون اضافش کنید
- داخل کلاسی که می خواین از شی متلب استفاده کنید کد زیر رو به assembly هاش اضافه کنید
using MLApp;
- اکنون برای دسترسی به متلب کافیه یک نمونه از کلاس MLAppClass ایجاد کنید
- بعد از ایجاد این نمونه با متد هایی که چند خط بعد توضیح میدیم کاراتونو انجام بدید
متد execute:
آرگومان این متد یک string خواهد بود که همان کد متلب است و متلب آن را اجرا می کند
تا اینجا فهمیدیم چجوری کد متلبو از داخل سیشارپ بفرستیم برای اجرا اما مهم ورودی و خروجیه که باید برای متلب فرستاد و از متلب گرفت
متد PutFullMatrix
مواقعی که قراره یک آرایه یا ماتریس (آرایه دو بعدی) بفرستید به متلب، از این متد استفاده می کنید که آرگومان های این متد از این قرارند:
- بعد از ایجاد این نمونه با متد هایی که چند خط بعد توضیح میدیم کاراتونو انجام بدید
متد execute:
آرگومان این متد یک string خواهد بود که همان کد متلب است و متلب آن را اجرا می کند
تا اینجا فهمیدیم چجوری کد متلبو از داخل سیشارپ بفرستیم برای اجرا اما مهم ورودی و خروجیه که باید برای متلب فرستاد و از متلب گرفت
متد PutFullMatrix
مواقعی که قراره یک آرایه یا ماتریس (آرایه دو بعدی) بفرستید به متلب، از این متد استفاده می کنید که آرگومان های این متد از این قرارند:
string name: نام آرایه در محیط متلب
string Workspace: نام محیط کار متلب
Array pr: ماتریس قسمت حقیقی اعداد
Array pi: ماتریس قسمت موهومی اعداد
توضیح بیشتر:
آرگومان اول واسه اینه که متلب توی محیط خودش به آرایه شما یک اسم نسبت بده و بعدا توی کد متلب بتونید از این اسم استفاده کنید.
آرگومان دوم محیط کار متلبو نشون میده که برای راحتی کار از رشته "base" استفاده کنید.
آرگومان سوم همان آرایه ای است که می خواهید بفرستید اما قسمت حقیقی آن ها
آرگومان چهارم آرایه ایست با ابعاد آرگومان قبل که در صورتی که اعداد شما مختلط باشن باید پرش کنید ولی اگر عدداتون حقیقی باشن یه آرایه صفر بفرستید اما ابعادش باید حتما با آرگومان قبلی برابر باشه.
خب تا اینجا هم دیدیم که چجوری ورودی بفرستیم فقط یه گام دیگه مونده که اونم گرفتن خروجیه.
متد GetWorkspaceData
string Workspace: نام محیط کار متلب
Array pr: ماتریس قسمت حقیقی اعداد
Array pi: ماتریس قسمت موهومی اعداد
توضیح بیشتر:
آرگومان اول واسه اینه که متلب توی محیط خودش به آرایه شما یک اسم نسبت بده و بعدا توی کد متلب بتونید از این اسم استفاده کنید.
آرگومان دوم محیط کار متلبو نشون میده که برای راحتی کار از رشته "base" استفاده کنید.
آرگومان سوم همان آرایه ای است که می خواهید بفرستید اما قسمت حقیقی آن ها
آرگومان چهارم آرایه ایست با ابعاد آرگومان قبل که در صورتی که اعداد شما مختلط باشن باید پرش کنید ولی اگر عدداتون حقیقی باشن یه آرایه صفر بفرستید اما ابعادش باید حتما با آرگومان قبلی برابر باشه.
خب تا اینجا هم دیدیم که چجوری ورودی بفرستیم فقط یه گام دیگه مونده که اونم گرفتن خروجیه.
متد GetWorkspaceData
از اسمش معلومه که می خواد چیکار کنه پس مستقیم میریم سراغ آرگومان ها
string Name: اسم متغیر مورد نظر در متلب
string Workspace: محیط کار مورد نظر
out object pdata: شئ خام برای نسبت دادن خروجی
توضیح بیشتر:
آرگومان اول مثل متد قبلیه
آرگومان دوم هم همینطور
آرگومان سوم یک object که باید اولا null باشه و دوما تو متد پشتش باید واژه out نوشته بشه. یه نکته اینجا هست، اینکه برنامه نویس خودش باید بدون خروجی متلب چه جنسی داره تا بعد اجرای این متد بتونه object مربوطرو typecast کنه و ازش استفاده کنه.
امیدوارم توضیحات بالا مفید واقع بشن. اگر شد یه مثال هم برای دانلود میذارم تا بیشتر جنبه کد نویسیشو ببینید. اگه سوالی داشتید تو بخش نظرات بپرسید.
string Workspace: محیط کار مورد نظر
out object pdata: شئ خام برای نسبت دادن خروجی
توضیح بیشتر:
آرگومان اول مثل متد قبلیه
آرگومان دوم هم همینطور
آرگومان سوم یک object که باید اولا null باشه و دوما تو متد پشتش باید واژه out نوشته بشه. یه نکته اینجا هست، اینکه برنامه نویس خودش باید بدون خروجی متلب چه جنسی داره تا بعد اجرای این متد بتونه object مربوطرو typecast کنه و ازش استفاده کنه.
امیدوارم توضیحات بالا مفید واقع بشن. اگر شد یه مثال هم برای دانلود میذارم تا بیشتر جنبه کد نویسیشو ببینید. اگه سوالی داشتید تو بخش نظرات بپرسید.