或者可告知如何实现matlab与Delphi 接口?(无需Matlab环境)

解决方案 »

  1.   

    看看这里的帮助:
    http://www.djpate.freeserve.co.uk/Matlab.htmmatcom下载可以到以下网址找找:
    www.51delphi.com
    www.playicq.com
    www.vclxx.org下面的帖子,希望对你有帮助:如何在delphi中调用.m文件? 在VC中利用Matcom的Visual MatrixLib将Matlab程序做成标准的Windows DLL,在Delphi中可以进行调用,
    通过函数的输入、输出参数进行数据交换,通过实验已经调试成功。
    具体的步骤和注意事项如下: 在VC中新建一个空的Windows Dynamic-link Library工程,取名为MotorDSP。在工程中加
    入一个c/c++ source file,取名为main.cpp,在第一行写下这句话“#include ”,
    注意include的路径。再在这个工程里添加“v4501v.lib”。再在工程中添加一个文本
    文件,取名为MotorDSP.def,一个def文件的标准格式如下: LIBRARY MotorDSP CODE PRELOAD MOVEABLE DISCARDABLE DATA PRELOAD SINGLE EXPORTS 后接要输出的函数名即可,不需要完成的输入、输出声明。在main.cpp中对要输出的
    函数进行声明和具体的实现,注意函数的声明一定要以WINAPI开头。例如
    WINAPI int fft(…) {}; 在Delphi中这样声明一个DLL中的函数: Function (procedure) fft(…) : integer; stdcall; external ‘MotorDSP.dll’ name ‘fft’; 注意: ①一定要用stdcall; ②DLL文件的路径; ③函数的大小写一定要和在VC中声明的一样。 参数传递中最好不要使用string类型,数组的传递通过指向数组的指针进行,例如: Type DoubleArray : array of double; PdoubleArray : ^DoubleArray; Var data : PdoubleArray; Begin Getmem(data, n×sizeof(double)); Data[i] := I; ……; freemem(data); 在VC中如何把得到的数组指针转换到MatrixLib所认的矩阵形式,请看
    Matrix User’s Guide。 
    var result:string;
    matlab:variant;
    begin
    matlab =creatoleObject("Matlab.Application");
    var x=Edit1.Text;
    result=matlab.Execute(x);
    即可调用matlab,且可将edit1.text的*.M文件的内容,
    调入后台matlab,返回结果至result中。