gpt4 book ai didi

c# - 我们可以在 C# 中创建 GUI 来运行 MATLAB 代码吗?

转载 作者:行者123 更新时间:2023-11-30 20:01:33 24 4
gpt4 key购买 nike

我在 MATLAB 中设计了代码,它运行良好。我在 MATLAB 中使用 GUI 工作,但这让我很头疼。我想我可以简单有效地创建 GUI。我们能否在 C# 中创建 GUI,它也将运行我设计的 MATLAB 的全部代码??

最佳答案

是的,这是可能的。有关详细信息,请查看:

如果您需要一种快速而肮脏的方式来使用 C# GUI(例如 WinForms)包装 MATLAB 代码,一个选择是从您的 MATLAB 代码 (.m) - 从 .NET 创建一个 exe,然后您可以轻松地启动它exe作为一个新进程。请注意,这种方法在某些情况下可能不是最好的,因为 exe 调用引入的延迟可能非常大(正如其他答案所解释的那样)。

一个例子:首先,将 MATLAB 代码写成一个函数:

function y=SamplePlot(p, d, w, t)
numericValueP=str2num(p);
numericValueD=str2num(d);
numericValueW=str2num(w);
time=str2num(t);

%... do stuff ...
plot(...);

输入参数将通过命令行作为字符串参数传递给此代码,因此它们通过 str2num 进行转换。例如。一个 MATLAB 调用

SamplePlot('1', '2', '3', '4')

将表示为

SamplePlot.exe 1 2 3 4

现在,从 .m 文件创建一个独立的控制台应用程序:在 MATLAB 控制台中,写入:

deploytool

名称:SamplePlot.prj(例如)。目标:控制台应用程序。添加.m 文件。包:添加 MCR(这是 MATLAB 编译器运行时 - 这是最终用户在没有安装 MATLAB 时需要的东西;对于本地测试,您不需要添加它)。然后使用:

mbuild -setup

最后,单击“构建”图标。一段时间后,生成一个exe。现在,您可以从 C# 应用程序将此 exe 作为进程启动,例如点击按钮:

private void button1_Click(object sender, EventArgs e)
{
string p=TextBox1.Text;
string d=TextBox2.Text;
string w=TextBox3.Text;
string t=TextBox4.Text;
string params = String.Format("{0} {1} {2} {3}",p,d,w,t);
System.Diagnostics.Process.Start("SamplePlot.exe", params);
}

我遗漏了一些次要细节,但这是一种可能的选择。

(如果我没记错的话,也可以通过这种方式生成程序集;然后您可以调用程序集而不是 exe 文件)。

关于c# - 我们可以在 C# 中创建 GUI 来运行 MATLAB 代码吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18726775/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com