FAQ > 金融建模 > 第三方交互 > MatLab

Q:mdo/mdo2的使用方法(MATLAB交互)    

  • A:
    除了调用本地的MATLAB以外,金融分析.NET还支持在服务器后台配置的方法来支持MATLAB编译出来的函数提供调用,此方法仅适用购买了天软落地服务器及MATLAB授权的用户。
    如果返回的参数只有一个,则调用的方法为ret:=mdo(‘Matlab函数名’,调用参数1..调用参数N)。
    如果返回的参数超过一个,则调用的方法为mdo2(‘Matlab函数名’,返回的参数个数,返回的参数1..返回的参数N,调用参数1..调用参数N)。
    例如:假定服务器上提供了matlab的toolbox的garch以及norminv支持,调用方法如下:
    randomize();
    v:=creatematrix(1,100);
    for i:=0 to 99 do
    for j:=0 to 0 do
    v[i][j]:=random(i*j+1000);
    //以上生成随机的矩阵
    sp:=mdo('garchset','P',1,'Q',1,'Display','off');
    coeff:=mdo('garchfit',sp,v);
    mdo2('garchpred',2,sigma,u,coeff,v);
    inv:=mdo('norminv',0.8,u,sigma);
    配置方法如下:
    无论是用户自己编写的函数还是MATLBA提供的TOOLBOX函数,在MATLAB中都是以.m文件存在的,这些m文件matlab提供了编译成DLL的方法:
    假定当前目录为toolbox\garch\garch下:
    用C:\Program Files\MATLAB\R2008a\toolbox\garch\garch>mcc -W lib:garch -T link:lib
    garchset garchfit garchpred ..\..\stats\norminv
    可以将garchset garchfit garchpred norminv等函数编译成DLL,假如要编译更多的TOOLBOX函数或者自己编写的M函数,只要在命令行内添加就可以了。
    编译完成后会得到garch.dll(由lib:garch指定的),假设dll文件放在C:\program files\MATLAB\R2009a\bin\win32下,在金融分析.NET的服务器后台进行配置:在\Tinysoft\bin\plugin\Filemgr.ini文件中添加配置语句:
    [Matlab config]
    permit=garchset;garchfit;garchpred;norminv
    Enabled=1

    [matlab:garchset]
    Lib=C:\program files\MATLAB\R2009a\bin\win32\garch.dll
    name=mlxGarchset

    [matlab:garchfit]
    Lib=C:\program files\MATLAB\R2009a\bin\win32\garch.dll
    name=mlxGarchfit

    [matlab:garchpred]
    Lib=C:\program files\MATLAB\R2009a\bin\win32\garch.dll
    name=mlxGarchpred

    [matlab:norminv]
    Lib=C:\program files\MATLAB\R2009a\bin\win32\garch.dll
    name=mlxNorminv
    经过上述配置后,就可以在天软平台中使用mdo和mdo2函数调用之前编译的MATLAB函数。