mathematica可以直接调用C语言的代码么?

如题所述

可以调用C语言的方法,如下
1.用C语言写好函数,如
double f(double x,double y){
return x*y;
}
2.找到路径,比如C:\Program Files\Wolfram Research\Mathematica\6.0
\SystemFiles\Links\MathLink\DeveloperKit\Windows\MathLinkExamples\addtwo或相应安装目录下的addtwo.c以及
addtwo.tm两个文件拷贝到某个自己的文件夹中。
3.将addtwo.c以及addtwo.tm依照用C语言写好的函数进行修改存为f.c以及f.tm,其中本例需要修改之处
(1)addtwo.c中"extern int addtwo( int i, int j);"及以下函数addtwo代码部分替换为函数f相应的代码。
(2)addtwo.tm中Function、Pattern、Arguments、ArgumentTypes、ReturnType均需要按照f的定义进行修改,其中
addtwo两个变量均是int返回值也是int而f的变量和返回值均为double,故应当将其中Integer相应改为Real
(3)如果需要用户能在Mathematica中通过?+函数名来查询函数功能,则需修改:Evaluate:项中相应的内容
特别注意(至少)若安装有Visual Studio 6则不可按文档
Tutorial/SettingUpExternalFunctionsToBeCalledFromMathematica中所述的方法自行编写f.c,那样会导致LINK时提
示WinMain函数无定义
4.安装负责将MathLink template文件生成C代码的mprep.exe,做法如下
(1)进入C:\Program Files\Wolfram Research\Mathematica\6.0
\SystemFiles\Links\MathLink\DeveloperKit\Windows\CompilerAdditions\MLDev32或非默认安装位置的相应文件夹
(2)按下Ctrl键,选中并拖拽Lib,Include,Bin三个文件夹进入路径C:\Program Files\Microsoft Visual Studio\VC98
(Visual Studio 6)或C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK(Visual Studio 2005)或任何非
默认安装路径相应文件夹下
(3)出现提示对话框时选择"是"或"全部"
此操作会将Mathematica的三个文件夹中的文件复制到VC同名文件夹下
4.完成后进入命令行并进入存储f.c以及f.tm的文件夹,输入如下语句
SET CL=/nologo /c /DWIN32 /D_WINDOWS /W3 /O2 /DNDEBUG
SET LINK=/NOLOGO /SUBSYSTEM:windows /INCREMENTAL:no /PDB:NONE kernel32.lib user32.lib gdi32.lib
MPREP f.tm -o ftm.c
CL f.c ftm.c
LINK f.obj ftm.obj ml32i3m.lib /OUT:f.exe
此操作最终将会编译出可被Mathematica调用的MathLink程序f.exe
其中前两句将(创建及)改变环境变量CL,LINK的值,其选项的意义详见Mathematica文档
tutorial/MathLinkDeveloperGuide-Windows
mprep句执行后应生成ftm.c,-o意为输出成文件,CL句执行后将生成f.obj以及ftm.obj,LINK句将生成f.exe,其中
ml32i3m.lib为MathLink所需的库文件,应当位于编译器所能找到的路径中
5.在Mathematica中安装并调用程序。可用如下语句调入程序
link=Install["[路径]\\f"]
其中[路径]应用f.exe所在路径代替。卸载程序时只需用语句
Uninstall[link]
即可
温馨提示:内容为网友见解,仅供参考
无其他回答

mathematica可以直接调用C语言的代码么?
LINK f.obj ftm.obj ml32i3m.lib \/OUT:f.exe 此操作最终将会编译出可被Mathematica调用的MathLink程序f.exe 其中前两句将(创建及)改变环境变量CL,LINK的值,其选项的意义详见Mathematica文档 tutorial\/MathLinkDeveloperGuide-Windows mprep句执行后应生成ftm.c,-o意为输出成文件,CL句执行后将生成f...

Mathematica是编程语言吗
但它不是一种通用的编程语言。mathematica不向python,c语言这些语言一样,可以构建各种各样的应用程序,它多数情况下只被用来执行科学研究方面的计算和分析任务。使用mathematica语言,几乎必须下载mathematica这个软件,这个软件至于这门语言就像是Python解释器之于python语言,c编译器之于c语言,但细节上还是有...

mathematica 有输入输出函数吗 像scanf的哪种
请不要用C语言的方式来思考mathematica 的功能,不同的语言有不同的思维方式。scanf那种函数太原始了,请问你用scanf能输入图片吗?能输入excel表格吗?能输入网页吗?mathematica 的输入函数是Import,输出是Export,支持几十种格式哦,查一下帮助就知道了,很简单的。

C语言中能不能通过键盘输入一个公式,例如:f(x)这样的函数,并在程序中使...
可以,涉及到一下字符操作,算法上来说的话可以通过模拟堆栈的方法实现

mathematica 可以求解大整数问题吗?
可以,不限位数,只要内存足够能保存的数字基本能计算。它有编程接口,支持C、C++、.Net、Java

Mathematica 的语言跟Matlab语言是一样的吗
可以调用C,Fortran等的输出并转化为Mathematica的表示形式,也可以将Mathematica的输出转化为C,Fortran语言和Tex编译器(注:Tex是著名的数学文章编辑软件,用它打印出的文章,字体漂亮、格式美观)所需的形式.甚至还可以在C语言中嵌人Mathematica的语句.这使Mathematica编程更灵活方便增强了Mathematica的功能....

三大数学软件maple,matlab,mathematica哪个好,是用平常写在纸上的那 ...
maple没有用过,关于mathematica和matlab,你可以看看我的这个回答:http:\/\/zhidao.baidu.com\/question\/505315229.html 至于计算方式,Mathematica相对Matlab更接近传统数学式,但是,这依旧改变不了它是一门编程语言,而且是一门高度完备且严谨的编程语言的事实,想要发挥出它的力量,是绝对要编程的。当然了...

matlab功能上比mathematica强吗?
Mathematica的基本系统主要是用C语言开发的,因而可以比较容易地移植到各种平台上,Mathematica是一个交互式的计算系统,计算是在用户和Mathematica互相交换、传递信息数据的过程中完成的。Mathematica系统所接受的命令都被称作表达式,系统在接受了一个表达式之后就对它进行处理,然后再把计算结果返回。Mathematica...

Mathematica和Maple哪个更好些???
当然是Maple好学。1. Maple有“Clickable Math”可点击的数学的特征。2. Maple的程序语言更加自然,类似于c语言。相比Mathematica,Maple模块化的结构更科学,而Mathematica是一个不可信赖的系统。

Mathematica——能与MATLAB媲美的强大计算工具
从以上几个例子可以看出,Mathematica的计算方式是使用大量内置函数命令,非常便于计算和公式推导,免去了用户查找算法并使用FORTRAN或C语言自己编程的麻烦。Mathematica与MATLAB在很多计算、绘图和编程的功能上相似。它们之间的区别可以归纳为以下几点,各有优劣。关于Mathematica的使用方法,本文从网上精选出一个...

相似回答