2012-07-23 122 views
0

我目前使用这个初步代码:从C#客户端调用MATLAB软件 - 获得标结果

static void Main(string[] args) 
{ 
    try 
    { 
    Type matlabtype; 
    matlabtype = Type.GetTypeFromProgID("matlab.application"); 

    object matlab; 
    matlab = Activator.CreateInstance(matlabtype); 

    Execute(matlabtype, matlab, "clear;"); 
    Execute(matlabtype, matlab, "path(path,'H:/bla/bla');"); 
    Execute(matlabtype, matlab, "Object = ClassName();"); 
    Execute(matlabtype, matlab, "Object.parameter1 = 100;"); 
    Execute(matlabtype, matlab, "Object.parameter2 = 300;"); 
    object o = Execute(matlabtype, matlab, "Object.ComputeSomething()"); 
    } 
    catch (Exception e) 
    { 

    } 
} 

创建一个特定的类的对象,设置一些属性和计算一些东西。这里:

ComputeSomething();

返回一个标量。

我只是想知道这是否是编程这个最好的方法,什么是最干净的方式来获得实际的标量值而不使用字符串操作(例如,删除ans =)?

谢谢。

基督教

+0

http://stackoverflow.com/questions/434331/interoperating-between-matlab-and-c-sharp有帮助吗? – 2012-07-23 15:56:26

+0

不是。谢谢。 – cs0815 2012-07-23 16:07:58

+0

从[这里](http://gilbertmultiplier.blogspot.com/2009/03/how-to-call-matlab-in-c.html):你尝试过'GetFullMatrix'命令吗? – tmpearce 2012-07-23 16:31:20

回答

0

您可以使用几个命令从MATLAB中检索数据。要获得标量,可以调用GetVariable。

Execute(matlabtype, matlab, "result = Object.ComputeSomething()"); 
GetVariable(matlabtype, matlab, "result", "base") 

请参阅Call MATLAB COM Automation Server了解可用的电话。