Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 2010 matlab与visualstudio的集成_Visual Studio 2010_Matlab - Fatal编程技术网

Visual studio 2010 matlab与visualstudio的集成

Visual studio 2010 matlab与visualstudio的集成,visual-studio-2010,matlab,Visual Studio 2010,Matlab,有没有可能从VisualStudio获得一个接口,可以调用matlab文件(代码)并运行它 我基本上想要一个.exe文件,其中有来自VS的GUI和来自matlab的代码。 谢谢我不太确定你的问题是什么,但我仍然很确定答案是“不” 如果您使用一种visual studio语言(例如C#、VB.NET等)构建了用户界面,并且希望该界面调用matlab脚本,那么我知道您有两个选项: 1) 从Mathworks购买matlab.NET接口。我不太清楚它是怎么工作的,因为它需要很多钱,而我没有 2) 购买

有没有可能从VisualStudio获得一个接口,可以调用matlab文件(代码)并运行它

我基本上想要一个.exe文件,其中有来自VS的GUI和来自matlab的代码。
谢谢

我不太确定你的问题是什么,但我仍然很确定答案是“不”

如果您使用一种visual studio语言(例如C#、VB.NET等)构建了用户界面,并且希望该界面调用matlab脚本,那么我知道您有两个选项:

1) 从Mathworks购买matlab.NET接口。我不太清楚它是怎么工作的,因为它需要很多钱,而我没有

2) 购买matlab编译器(这也需要很多钱)并将matlab代码“编译”成可执行文件。然后通过命令行从您选择的.NET语言调用该可执行文件。这种方法的问题是,将数据传递到matlab脚本的唯一方法是通过从命令行调用脚本。通常的解决方法是通过命令行在调用中传递txt或csv文件的位置,然后让matlab脚本的第一部分专门用于从该txt或csv文件检索数据。这种方法的另一个问题是,如果你想调用很多matlab脚本,这将花费你很长时间,因为每次你在后台调用一个“编译”的matlab脚本,你实际上是通过一个叫做matlab编译器运行库的beast创建所有matlab运行库的一个新实例。这就是为什么我说“编译”——因为它仍然在运行时解释,所以它不是真正编译的

编辑

要使用VB.NET调用matlab脚本,可以尝试:

    '#Get the matlab executable info
    Dim MatlabStartInfo As New ProcessStartInfo
    MatlabStartInfo.FileName = "cmd.exe"
    MatlabStartInfo.WindowStyle = ProcessWindowStyle.Maximized
    MatlabStartInfo.Arguments = "/C " & Chr(34) & Chr(34) _ 
    & "C:\Path\To\Matlab\Script\Matlab_Script.exe " & Chr(34) & " " & Chr(34) _
    & MatlabScriptInputArgument & Chr(34) & Chr(34)

    '#Run the matlab executable
    Using MatlabProcess As Process = New Process
        MatlabProcess.StartInfo = MatlabStartInfo
        MatlabProcess.Start()
        MatlabProcess.WaitForExit()
    End Using

其中MatlabScriptInputArgument是一个字符串,其中包含matlab函数的参数(上述代码仅假设一个输入)。

如果您正在构建GUI并将其集成到
.mex
文件中,则以下操作有效: 您可以使用
mex.h
中的
mexCallMATLAB
调用matlab函数或用户定义函数:


如果您正在用C/C++构建一个独立的程序(这将生成一个
.exe
文件),那么有一个名为
Matlab引擎
的东西,您可以调用它来执行
Matlab
代码。请看这里以了解有关此接口的更多信息。它基本上是一个C库,允许您调用
Matlab

而不是Visual Studio,但是有一个Matlab。

这是不可能的。VS无法执行/调试matlab代码。这是两种不同的动物。那么你能告诉我为matlab代码创建良好GUI的最佳方法是什么吗,由于matlab提供的GUI非常低level@Atish一个好的GUI就是一个好的GUI,无论它是为运行matlab代码还是为任何其他任务而设计的。如何构建一个好的GUI的主题与您最初的问题非常不同,老实说,这不是一篇简单的堆栈溢出文章就能回答的问题。这是一个大话题。如果您想知道如何从VS GUI调用matlab脚本,那么,我在上面的回答中附加了一些VB.NET代码,您应该可以开始了。@Atish另外,如果您觉得我已经回答了您的初始问题,请单击我的回答旁边的勾号来标记我的回答。谢谢