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