Jak používat Mathlink

K

karbanátek

Guest
Zdravím všechny
Chci používat c program v mathematica.but nevím, jak používat mathlink.
Chci úvod (ne intorduction v mathemtica prohlížeči)
být zavázán u

<img src="http://www.edaboard.com/images/smiles/icon_cry.gif" alt="Pláč nebo velmi smutný" border="0" />
 
Našel jsem tento program na webu:/ *
* Jednoduchý příklad pro volání Mathematica pro generování grafu PostScript.
*
* Pro konečné program, měli byste zahrnout řadu dalších
* Prvků, zvláště, zotavení po chybě z tohoto programu je nízká.
*
* Používáme Enter funkci, aby řetězce do jádra.
*

* Původní program napsán pro Mathematica 2.1.
* Aktualizováno na Mathematica 3,0 do
* Kevin Leuthold, Wolfram Research na 12/12/97.
*

* K vytvoření tohoto programu, řiďte se pokyny v MathLink vývojáře
* Průvodce pro budování faktor s konkrétním kompilátorem - náhradní
* Tento soubor factor.c.

* Chcete-li spustit tento program použít příkazový-line níže:
* Unix: psgen-linkname "math-mathlink"
* Mac nebo Windows: psgen-linklaunch
* /

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

# Pokud MACINTOSH_MATHLINK
extern int mlmactty_init (char *** argvp);
# Endif

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

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

int main (int argc, char * argv []) (
dlouhé;
const unsigned char * postline;
int p, res;

init_and_openlink (argc, argv);

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

/ * Nyní dát Mathematica příkaz Plot * /
MLPutFunction (kernel_link, "Enter", 1);
MLPutString (kernel_link, "Plot3D [Sin [x Cos [y]], (x, 0, Pi), (y, 0, Pi }]");
MLEndPacket (kernel_link);

/ * Zvedněte displej.Všimněte si, že kdybychom byli písemně plné
program, bychom chtěli vyzvednout všechny výstupní, takže jsme mohli říct,
Pokud se načítání souboru selhalo * /

zatímco ((p = MLNextPacket (kernel_link), p) & & P! = DISPLAYPKT) (
MLNewPacket (kernel_link);
if (p == 0) (
fprintf (stdout, "chyba je% d \ n", MLError (kernel_link));
exit_and_deinit ();
)
)

/ * Teď jsme ve všech paketů, hledáte * DISPLAYENDPKT /

while (p! = DISPLAYENDPKT) (
res = MLGetByteString (kernel_link, & postline, & délka, 255);
if (res == 0) (
fprintf (stdout, "chyba je% d \ n", MLError (kernel_link));
exit_and_deinit ();
)
fprintf (stdout, "% s", postline);
MLDisownByteString (kernel_link, postline, délka);
p = MLNextPacket (kernel_link);
)

MLClose (kernel_link);
MLDeinitialize (ENV);

return 0;
)

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

static void init_and_openlink (int argc, char * argv [])
(
dlouho bloudí;

# Pokud MACINTOSH_MATHLINK
MLYieldFunctionObject výnosná;
argc = mlmactty_init (& argv);
# Endif

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

# Pokud MACINTOSH_MATHLINK
výnosná = MLCreateYieldFunction (ENV, NewMLYielderProc (
MLDefaultYielder), 0);
# Endif

kernel_link = MLOpenArgv (ENV, argv, argv argc, & ERR);
if (kernel_link == (MLINK) 0) exit_and_deinit ();

# Pokud MACINTOSH_MATHLINK
MLSetYieldFunction (kernel_link, výnosná);
# Endif

)

 
Chcete-li: main_road
Děkujeme vám za vaši pomoc
Pokusím se to.

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

Welcome to EDABoard.com

Sponsor

Back
Top