PDA

View Full Version : نحوه برقراری ارتباط بین matlab و #c ؟



rivaaaldo
چهارشنبه 28 مرداد 1388, 00:01 صبح
با سلام

یه سوال مهم و فوری داشتم

من با استفاده از toolbox مطلب یک برنامه در مطلب نوشتم(موتور استنتاج فازی)
که این برنامه تو خود مطلب اجرا میشه و به ازا ورودیهای مختلف جوابهای متفاوت داره..

حالا میخوام بوسیله #c اون رو اجرا کنم و از نتایجش داخل #c استفاده
کنم.
چه جوری اینکار رو میتونم انجام بدم؟
برقراری ارتباط بین مطلب و #c چگونه هست؟


اگر لطف کنین جواب بدین ممنون میشم.

rivaaaldo
چهارشنبه 28 مرداد 1388, 09:56 صبح
لطفا اگر کسی بلده کمک کنه..

ali.akhbary
چهارشنبه 28 مرداد 1388, 11:27 صبح
اگه می خوای پارامتر رد و بدل کنی سخته. راه اصلی اون اینه که باید یه پورت کام مجازی بسازی و روی اون بنویسی و بخونی. تو C# هم همینطور.

ولی میتونی توی یه فایل مشترک پارامترها رو قرار بدی و یه سیستمی پیاده کنی که Confilict نداشته باشه.

ولی اگه فقط بخوای exe متلب رو اجرا کنی که دیگه این کارها رو نمی خواد.

rivaaaldo
چهارشنبه 28 مرداد 1388, 11:50 صبح
ممنون لطف کردین
من میخوان به ازا مقادیری که در اجرای برنامه س شارپ
بدست میاد اون فایل مطلب فراخونی بشه
یعنی هر بار با یه ورودی جدید فراخونی بشه
اینجا رو نمیدونم چیکار کنم؟

rivaaaldo
پنج شنبه 29 مرداد 1388, 12:58 عصر
کسی بلد نیست؟

mitra.m
پنج شنبه 29 مرداد 1388, 14:07 عصر
سلام. منم مشكل شما رو دارم منتها كدهاي من مال پردازش تصوير است. جوابهايي كه به من دادن گفتن كه بايد از هر M-file ي كه تو متلب داريم يه dll بسازيم و اونو تو dotNet وارد كنيم و بعد از تابع هاش استفاده كنيم. اگه چيزي فهميديد لطفا به من هم خبر بده.
ميترا
(http://www.kaspid.com (http://www.kaspid.com/))

amirniknam
جمعه 30 مرداد 1388, 10:07 صبح
من چند وقت پيش اين سوال رو پرسيدم اما متاسفانه كسي پاسخ نداد بالاخره با جستجوي زياد راه حل اين مشكل رو پيدا كردم:
شما اگر از نرم افزار matlab ورژن 2008 به بالا استفاده كنيد (فكر مي كنم 2007 هم ساپورت كنه) مي تونيد خيلي راحت يك فايل dll مورد استفاده در دات نت رو توليد و اون رو در برنامه هاتون وارد كنيد
براي اين كار ابتدا بايد يك Mfile بنويسيد به مثال ساده زير نگاه كنيد:


function result=addm(m1,m2)
result=m1+m2;

همنوطور كه ميبينيد اين تابع 2 مقدار ورودي رو با هم جمع و نتيجه رو در خروجي مينويسه
حالا به طريقه استفاده اون نگاه كنيد:


MathWorks.MATLAB.NET.Arrays.MWArray nm;


int[] j = { 1, 3,5 };
MathWorks.MATLAB.NET.Arrays.MWNumericArray num = new MathWorks.MATLAB.NET.Arrays.MWNumericArray(1,3,j);
Untitled1.Untitled1class cl = new Untitled1.Untitled1class();

MessageBox.Show(nm.IsNumericArray.ToString());
MessageBox.Show(cl.addm(num, num).ToString());

el_abdollahi
دوشنبه 16 آذر 1388, 10:01 صبح
با سلام
من از m فایل استفاده نمیکنم.
بلکه یک فایل FIS دارم.
میشه کسی بگه که چه جوری میتونم از این فایل توی دات نت استفاده کنم؟

با تشکر

عادله نصیری
سه شنبه 08 مرداد 1392, 12:26 عصر
سلام
من هم فایل fis دارم.
چطور باید توسی شارپ ازش استفاده کنم؟
خیلی ممنون میشم کمکم کنید

nonegar123
چهارشنبه 25 تیر 1393, 09:33 صبح
بسیار عالی ، ثبت اختراع (http://www.epatent.ir) ،خرید اختراع (http://www.epatent.ir) ، فروش اختراع (http://www.epatent.ir)