Calling EES from MATLAB
Shown below is a small MATLAB M file called EES_MATLAB.m that plays an EES Macro file. An alternative way to have EES and MATLAB interact is by using the /solve parameter or to use the MATLAB system command.
_____________________________________________________________________________________
% This file shows how EES and MATLAB can be coupled through file transfer
%% First start a DDE conversation between MATLAB and EES
chan = ddeinit('EES','DDE');
% Now let EES load the EES file
rc = ddeexec(chan,'[Open EES_MATLab.ees]'); % Alternative rc = ddeexec(chan,'Play EES_MATLab.emf');
% Create a File in MATLAB such that it can be read by EES with the $Import directive
var1 = 1;
var2 = 2;
var3 = 3;
var4 = 4;
var5 = 5;
t = 0;
for i = 1:10
t = t + 1
save MatLabInput.txt var1 var2 var3 var4 var5 t -ascii
% Ask EES solve the previously loaded program
rc = ddeexec(chan,'[Solve]');
% Read a file created by EES through the $EXPORT command into MATLAB
erg = csvread('EESOutput.csv')
end
% Terminate the DDE conversation between MATLAB and EES
ddeterm(chan);
_____________________________________________________________________________________
The EES file called by MATLAB is as follows:
_____________________________________________________________________________________
$Import 'C:\ees32\ees_MATLAB\MatLabInput.txt', var1, var2, var3, var4, var5, t
erg = (var1 + var2 + var3 + var4 + var5) * t
$Export 'C:\ees32\ees_MATLAB\EESOutput.csv', erg
_____________________________________________________________________________________
Note that, as an alternative to opening and solving an EES file as demonstrated here, it may be simpler to Play a macro file. This would be accomplished with the following command from MATLAB
rc = ddeexec(chan,'Play EES_MATLAB.emf')
where EES_MATLAB.emf is an EES macro file containing the list of EES commands that are to be run.
Place the EES_MATLAB.m and EES_MATLAB.EES files in the C:\EES32\EES_MATLAB directory. In order to run this macro from MATLAB, EES must be running in the background so start EES and then minimize it. Start MATLAB and enter the following commands
CD C:\EES32\EES_MATLAB
EES_MATLAB
The Professional license of EES is required to run these examples.
See also: