bagaimana menggunakan Mathlink

B

bakso

Guest
Hi all
Saya ingin menggunakan sebuah program c mathematica.but saya tidak tahu bagaimana menggunakan mathlink.
i menginginkan sebuah pengantar (bukan intorduction di browser mathemtica)
thank u

<img src="http://www.edaboard.com/images/smiles/icon_cry.gif" alt="Crying or Very sad" border="0" />
 
Aku menemukan program ini di web:/ *
* Simple contoh untuk memanggil Mathematica untuk menghasilkan PostScript plot.
*
* Untuk program terakhir, Anda harus menyertakan sejumlah lainnya
* Elemen, khususnya, error recovery dari program ini adalah miskin.
*
* Kita menggunakan fungsi Masukkan untuk memberikan string ke kernel.
*

* Program asli ditulis untuk Mathematica 2.1.
* Updated for Mathematica 3,0 oleh
* Kevin Leuthold, Wolfram Research on 12/12/97.
*

* Untuk membangun program ini, gunakan petunjuk dalam MathLink Developer
* Panduan untuk membangun faktor dengan compiler tertentu Anda - pengganti
* File ini untuk factor.c.

* Untuk menjalankan program ini menggunakan baris perintah di bawah ini:
* Unix: psgen-linkname "matematika-mathlink"
* Mac atau Windows: psgen-linklaunch
* /

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

# jika 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 []) (
panjang panjang;
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);

/ * Sekarang beri Plot Mathematica perintah * /
MLPutFunction (kernel_link, "Enter", 1);
MLPutString (kernel_link, "Plot3D [Sin [x Cos [y]], (x, 0, Pi), (y, 0, Pi }]");
MLEndPacket (kernel_link);

/ * Ambil Display.Perhatikan bahwa jika kita sedang menulis penuh
program, kami ingin mengambil seluruh output, jadi kita bisa tahu
jika beban file gagal * /

while ((p = MLNextPacket (kernel_link), p) & & p! = DISPLAYPKT) (
MLNewPacket (kernel_link);
if (p == 0) (
fprintf (stdout, "kesalahan adalah% d \ n", MLError (kernel_link));
exit_and_deinit ();
)
)

/ * Sekarang kita baca di semua paket, mencari DISPLAYENDPKT * /

sementara (p! = DISPLAYENDPKT) (
res = MLGetByteString (kernel_link, & postline, & panjang, 255);
if (res == 0) (
fprintf (stdout, "kesalahan adalah% d \ n", MLError (kernel_link));
exit_and_deinit ();
)
fprintf (stdout, "% s", postline);
MLDisownByteString (kernel_link, postline, panjang);
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 [])
(
lama err;

# jika MACINTOSH_MATHLINK
MLYieldFunctionObject yielder;
argc = mlmactty_init (& argv);
# endif

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

# jika MACINTOSH_MATHLINK
yielder = MLCreateYieldFunction (env, NewMLYielderProc (
MLDefaultYielder), 0);
# endif

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

# jika MACINTOSH_MATHLINK
MLSetYieldFunction (kernel_link, yielder);
# endif

)

 
Kepada: main_road
Terima kasih atas bantuan Anda
Saya akan mencoba ini.

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

Welcome to EDABoard.com

Sponsor

Back
Top