如何在Delphi中调用Matlab(ActiveX)?

7).如何在Delphi中调用Matlab(ActiveX)?
:#FangQ(Qianqian.Fang@dartmouth.edu), 2002/6/22.BigGreen/MathTools#


        从这个地址下载例子:
        http://www.djpate.freeserve.co.uk/Matlab.htm

        还有一种方法是利用DelphiMEX,下载地址:
        http://Radio-BIP.qc.ca/DelphiMEX/DelphiMEX.html

        下面是把Alex Conradie的例子中选了一些主要的语句:

        var

         V : Variant;
         MReal : OleVariant;
         MImage : OleVariant;

        begin
         i,j : integer;

         MReal  := VarArrayCreate([0, 1, 0, 3], varDouble);
         MImage := VarArrayCreate([0,0,0,0], varDouble);

         V := CreateOLEObject('Matlab.Application');
         V.Execute('a=[1 2 3 4; 5 6 7 8]');
         V.GetFullMatrix('a','base',VarArrayRef(MReal),VararrayRef(MImage));
         for i := 0 to 1 do
          for j := 0 to 3 do
           Stringgrid1.Cells[j,i] := MReal[i,j];

         V.Execute('peaks');

         MReal  := VarArrayCreate([0, 1, 0, 3], varDouble);
         MImage := VarArrayCreate([0,0,0,0], varDouble);

         for i := 0 to 1 do
          for j := 0 to 3 do
           MReal[i,j] := i+4;

          V.PutFullmatrix('b','base',VarArrayRef(MReal),VararrayRef(MImage));

        end

 

发信人: hyphone (每天爱你多一些), 信区: MathTools      
标  题: Re: 请问在delphi中怎样调用matlab的Activex服务
发信站: BBS 水木清华站 (Sat Jun  1 13:34:48 2002)

//C++Builder中是这样:
Variant Matlab;
...
  Matlab=CreateOleObject("Matlab.Application");
  Matlab.Exec(Procedure("help"));
Matlab=Unassigned;
//Delphi中应该是这样
Matlab:Variant;
....
Matlab := CreateOleObject('Matlab.Application');
Matlab.Execute('help');
Matlab := Unassigned;

【 在 chengpp (ly) 的大作中提到: 】
: 我想在delphi编的应用程序中,
: 调用matlab的ActiveX的服务,
: 就是调用matlab的绘图功能
: 应该怎么做那?
: 请教各位高手

》》》》》》》》》》》》》》》》》

在Delphi中调用matlab的例子

var
        V : Variant;
        MReal : OleVariant;
        MImage : OleVariant;
begin
        i,j : integer;
        MReal := VarArrayCreate([0, 1, 0, 3], varDouble);
        MImage := VarArrayCreate([0,0,0,0], varDouble);
        V := CreateOLEObject('Matlab.Application');
        V.Execute('a=[1 2 3 4; 5 6 7 8]');
        V.GetFullMatrix('a','base',VarArrayRef(MReal),VararrayRef(MImage));
        for i := 0 to 1 do
        for j := 0 to 3 do
        Stringgrid1.Cells[j,i] := MReal[i,j];
        V.Execute('peaks');
        MReal := VarArrayCreate([0, 1, 0, 3], varDouble);
        MImage := VarArrayCreate([0,0,0,0], varDouble);
        for i := 0 to 1 do
        for j := 0 to 3 do
        MReal[i,j] := i+4;
        V.PutFullmatrix('b','base',VarArrayRef(MReal),VararrayRef(MImage));
end 



 

点评:这都不是我想象中最好的方法,最好的还是com

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值