You can add MATLAB figures to Excel most easily like this:
% Create some arbitrary graphics
f1 = figure; peaks; f2 = figure; membrane;
% Connect to Excel, make it visible and add a worksheet
xl = actxserver('Excel.Application'); set(xl,'Visible',1);
xl.Workbooks.Add(1); xls = xl.ActiveSheet;
% Paste in the MATLAB figures
print(f1, '-dbitmap'); xls.Range('E3').PasteSpecial;
print(f2, '-dbitmap'); xls.Range('I3').PasteSpecial;
I'm not sure exactly what you mean by making the images 2in by 3in. Is that the size on screen? At what resolution? Or is it the size when printed?
You can specify the size and position of the image in points directly:
xls.Shapes.Item(1).PictureFormat.CropLeft = 30;
xls.Shapes.Item(1).PictureFormat.CropRight = 30;
xls.Shapes.Item(1).Height = 200;
xls.Shapes.Item(1).Left = xls.Range('E3').Left;
But if you want it in inches you'll need a way of converting to points, depending on the way it's displayed.
You mention that you're continually invoking Excel with actxserver
; are you connecting over and over again each time you write each piece of data? You probably don't need to do that - more likely you could keep a single connection open and write each piece of data to it, then save the file and close the connection.
A good reference resource for the Excel Object Model is the Microsoft documentation. It's not an easy read though :)