comment utiliser Mathlink

B

boulette de viande

Guest
Salut à tous
Je veux utiliser un programme C dans mathematica.but Je ne sais pas comment utiliser le mathlink.
Je veux une introduction (pas le Intorduction dans le navigateur mathemtica)
remercier u

<img src="http://www.edaboard.com/images/smiles/icon_cry.gif" alt="Pleure ou très triste" border="0" />
 
J'ai trouvé ce programme dans le web:/ *
Voici un exemple simple pour appeler * Mathematica pour générer un complot PostScript.
*
* Pour un programme définitif, vous devez inclure un certain nombre d'autres
* des éléments, en particulier la reprise sur erreur, de ce programme est pauvre.
*
* Nous utilisons les entrer dans la fonction de donner des chaînes vers le noyau.
*

* Programme à l'origine écrite pour Mathematica 2.1.
* Mise à jour pour Mathematica 3.0 en
Leuthold Kevin *, de la recherche Wolfram le 12.12.97.
*

* Mettre en place ce programme, suivez les instructions dans le Developer's MathLink
* Guide pour la construction de facteur avec votre compilateur particulier - substitut
* Ce fichier pour factor.c.

* Pour exécuter ce programme utiliser la ligne de commande ci-dessous:
* Unix: psgen-linkname "math-mathlink"
* Mac ou Windows: psgen-linklaunch
* /

# Include <stdio.h>
# Include <stdlib.h>
# Include "mathlink.h"

# Si MACINTOSH_MATHLINK
mlmactty_init extern int (char *** argvp);
# endif

env MLENV = (MLENV) 0;
kernel_link Mlink = (Mlink) 0;

init_and_openlink static void (int argc, char * argv []);
exit_and_deinit statique void ();

int main (int argc, char * argv []) (
grande longueur;
const char * postline non signé;
p int, la chose;

init_and_openlink (argc, argv);

MLPutFunction (kernel_link, "Enter", 1);
MLPutString (kernel_link, "<<PSDirect.m");
MLEndPacket (kernel_link);

/ * Maintenant donner Mathematica la commande * Terrain /
MLPutFunction (kernel_link, "Enter", 1);
MLPutString (kernel_link, "plot3d [Sin [x [cos y]], (x, 0, Pi), (y, 0, Pi }]");
MLEndPacket (kernel_link);

/ * Prise en charge de l'affichage.Notez que si l'on écrit plein
programme, nous voulons prendre toutes les sorties, afin que nous puissions dire
si la charge de fichier a échoué * /

while ((p = MLNextPacket (kernel_link), p) & & p! = DISPLAYPKT) (
MLNewPacket (kernel_link);
if (p == 0) (
(Stdout fprintf, «l'erreur est% d \ n", MLError (kernel_link));
exit_and_deinit ();
)
)

/ * Maintenant que nous lisons dans tous les paquets, la recherche d'un * DISPLAYENDPKT /

while (p! = DISPLAYENDPKT) (
res = MLGetByteString (kernel_link, & postline, et la longueur, 255);
if (res == 0) (
(Stdout fprintf, «l'erreur est% d \ n", MLError (kernel_link));
exit_and_deinit ();
)
(Stdout fprintf, "% s", postline);
MLDisownByteString (kernel_link, postline, longueur);
p = MLNextPacket (kernel_link);
)

MLClose (kernel_link);
MLDeinitialize (ENV);

return 0;
)

exit_and_deinit static void () (
if (kernel_link) MLClose (kernel_link);
if (ENV) MLDeinitialize (ENV);
exit (0);
)

init_and_openlink static void (int argc, char * argv [])
(
long err;

# Si MACINTOSH_MATHLINK
MLYieldFunctionObject rendement spécial;
argc = mlmactty_init (& argv);
# endif

env = MLInitialize (0);
if (env == (MLENV) 0) exit_and_deinit ();

# Si MACINTOSH_MATHLINK
= rendement spécial MLCreateYieldFunction (env, NewMLYielderProc (
MLDefaultYielder), 0);
# endif

kernel_link = MLOpenArgv (env, argv, argv argc, & err);
if (kernel_link == (Mlink) 0) exit_and_deinit ();

# Si MACINTOSH_MATHLINK
MLSetYieldFunction (kernel_link, rendement spécial);
# endif

)

 
Pour: main_road
Merci pour votre aide
Je vais essayer cela.

<img src="http://www.edaboard.com/images/smiles/icon_biggrin.gif" alt="Very Happy" border="0" />
 

Welcome to EDABoard.com

Sponsor

Back
Top