?delphi能直接调用matlab6.5编译的dll吗?
我用matcom+vc把matlab程序编译成dll或exe,但matcom对matlab某些函数不支持,
必须要试。
我做的是控制系统的运算,其主要用到的matlab函数程序如下
%ji suan chan han
[a,b,c,d]=tf2ss((k*k1,[t0*t1,t0,k*k1]);
lear;%
x=[0 0]';%初值
cA=a;%连续状态方程
cB=b;
u=1;%控制量
dt=0.01;%离散时间
[dA,dB]=c2d(cA,cB,dt);%经离散化得到离散状态方程
fid6=fopen('c:/my documents/txt/ejxt_t.txt','wt');
fid2=fopen('c:/my documents/txt/ejxt_y.txt','wts');
for i=1:1000;
record
,i)=dA*x+dB*u;%运行1000步,得到系统运动轨迹
x=record
,i);
y=c*x;
tt(i)=i*dt;
z=i*dt;
%shu chu shu ju
fprintf(fid1,'%f/n',t);
fprintf(fid2,'%12.8f/n',y);
形成一个ejxt.exe文件,delphi中调用,数据用临时文件传递
shellexecute(handle,nil,pchar('ejxt'),nil,nil,sw_hide);
读入数据
assignfile(outputfile,'c:/my documents/txt/ejxt_t.txt');
reset(outputfile);
for i:=1 to 801 do //读800个数据
begin
readln(outputfile,m);
h
:=strtofloat(m);
end;
closefile(outputfile);