Path: news.mathworks.com!not-for-mail
From: "Ashish Uthama" <first.last@mathworks.com>
Newsgroups: comp.soft-sys.matlab
Subject: Re: excel matlab connection and execution
Date: Tue, 28 Oct 2008 18:11:14 -0400
Organization: TMW
Lines: 65
Message-ID: <op.ujq880pha5ziv5@uthamaa.dhcp.mathworks.com>
References: <ge7via$ogo$1@fred.mathworks.com>
NNTP-Posting-Host: uthamaa.dhcp.mathworks.com
Mime-Version: 1.0
Content-Type: text/plain; format=flowed; delsp=yes; charset=iso-8859-15
Content-Transfer-Encoding: 7bit
X-Trace: fred.mathworks.com 1225231874 2658 172.31.57.126 (28 Oct 2008 22:11:14 GMT)
X-Complaints-To: news@mathworks.com
NNTP-Posting-Date: Tue, 28 Oct 2008 22:11:14 +0000 (UTC)
User-Agent: Opera Mail/9.60 (Win32)
Xref: news.mathworks.com comp.soft-sys.matlab:497717


Excel uses the registry to obtain the path/version of MATLAB to use for  
this command:
> Set MatLab = CreateObject("Matlab.Application")
Only one version of MATLAB may be registered using this per computer.

To ensure that MATLAB is registered and is indeed in the registry for  
Excel to find, do this:

1. Open the version of MATLAB you would like to use
2. type this in thecommand window:
     matlab -regserver
3. Type 'exit' in the new MATLAB command window that opens.
4. Close the main MATLAB session
5. Try your excel app..


On Tue, 28 Oct 2008 17:18:02 -0400, Filip T?rnqvist  
<filto338@student.liu.se> wrote:

> Hello!
>
> We're trying to connect and run matlab from excel using a  
> subroutine(executed via a commandbutton in excel) with the following  
> visualbasic code:
>
> Sub Exc_to_Mat()
>
> Dim MatLab As Object
> Dim result As String
> Dim MReal() As Double
> Dim MImag() As Double
> Set MatLab = CreateObject("Matlab.Application")
>
> Call MatLab.Execute("clear all")
> Call MatLab.Execute("cd  
> C:\My_Docs\Kurser_T\ProduktModellering_TMKT57\Excel_Matlab")
> Call MatLab.Execute("test1([ " &  
> ThisWorkbook.Worksheets("sheet1").Range("C5").Value _
> & " " & ThisWorkbook.Worksheets("sheet1").Range("C6").Value _
> & " " & ThisWorkbook.Worksheets("sheet1").Range("C7").Value & "])")
> Call MatLab.Execute("ans")
>
> Call MatLab.GetFullMatrix("ans", "base", MReal, MImag)
>
> ThisWorkbook.Worksheets("sheet1").Range("Stress").Value = MReal
>
> End Sub
>
> Running the m-file called test1 which looks like this:
>
> function Stress= test1(x);
> Radius = x(1);
> Thickness = x(2);
> Pressure = x(3);
> Stress = Pressure*Radius/Thickness;
>
> This connection will work and run on a computer using the 2006b licens  
> but not a computer using the 2007a what might be the problem? Have we  
> forgotten to add references in excel in order to be able to run these  
> types o files? Or have the possibility to run these types of codes been  
> removed from the 2007 version?
>
> Best regards
> /Filip and Oskar