Domanda

Dopo aver dato una sbirciatina su Internet sembra che sia possibile interagire tra C # e Matlab. Mi chiedo se qualcuno ha avuto successo con esso e cosa hanno fatto per farlo. Se possibile, in qualche modo tirarlo fuori senza l'uso di COM. Grazie per il tuo tempo.

È stato utile?

Soluzione

Sì, abbastanza possibile. Anche se ho finito per usare l'interfaccia C e chiamarla usando una DLL in modalità mista (e ottenere C # per chiamarla in questo ... ma questo perché stavo anche interfacciando con qualche altro codice C). È abbastanza semplice. Sui computer su cui desideri eseguire il programma, dovrai installare Matlab Runtime MCRInstaller.exe.

modifica: rimosso link non funzionante

Altri suggerimenti

A partire dalla versione R2009a di MATLAB, è possibile accedere agli oggetti .NET da MATLAB:

http://www.mathworks.com/help/techdoc/matlab_external/ brpb5k6.html

Nelle versioni precedenti di MATLAB, è possibile accedere agli oggetti .NET da MATLAB utilizzando CCW:

http: //www.mathworks. com / support / soluzioni / dati / 1-5U8HND.html? soluzione = 1-5U8HND

e il motore MATLAB di .NET:

http://www.mathworks.com/access/helpdesk/help/techdoc/index.html?/access/helpdesk/help/techdoc/matlab_external/f135590.html#f135616

È inoltre possibile utilizzare MATLAB Builder NE per avvolgere m-code negli assembly .NET.

http://www.mathworks.com/products/netbuilder/

Sì, sono riuscito a farlo ed è stato per lo più indolore.

Dovresti compilare il tuo codice MATLAB per .NET (come spiegato nelle risposte precedenti), eseguire il programma di installazione MCR, fare riferimento a MWArray.dll e la dll del codice rispettato nel tuo progetto .NET e via.

L'unico fastidio era il casting (e talvolta i casting multipli!) che l'interfaccia ti impone (usando esplicitamente negli operatori di cast)

Esiste un wrapper .NET gratuito e open source per Matlab ed è molto semplice: http://www.codeproject.com/KB/dotnet/matlabeng.aspx

Lo uso.

Nella pre-release R2009a è possibile chiamare assembly .net da MATLAB.

Non sono sicuro di quanto questo valga per te, ma prova a esaminare gli eseguibili matlab o MEX Fondamentalmente, è davvero facile scrivere un programma in C o FORTRAN, includere alcune librerie e funzioni, quindi puoi usare la tua funzione C o FORTRAN in matlab

Se sei disposto a spendere soldi, questo potrebbe essere ciò di cui hai bisogno:

http://www.mathworks.com/products/netbuilder/

Può generare wrapper per il codice Matlab che gli consentono di essere chiamato sia da .NET che da COM.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top