0

Matlab 和 .EXE 文件的兼容性如何?是否可以让 win32 API 向 matlab 发送消息并让 matlab 实时读取它们?

更准确地说,我可以让 Matlab 实时接收和处理来自另一个应用程序的消息吗?

在处理此类消息时,我还担心必须在 Matlab 中使用的循环类型。无限 for/while 循环是一个好习惯吗?

例如

while(infinite loop)
if (received message)
    do something
end
end

请注意,以上仅为算法,并非作为代码。

4

1 回答 1

1

您问题的第一部分:Matlab 引擎似乎就是您所追求的。

您问题的第二部分:在许多编码标准中,通常建议避免无限循环。无限循环的问题在于,它们可能永远不会结束 :) 错误或不完整地对退出条件进行编码太容易了,导致循环永远不会结束并且程序的执行会停止。这种错误可能会在单元测试中出现(经常失败的退出条件),或者只有在您的第一批客户开始抱怨您的程序崩溃(不那么经常失败的退出条件)之后才会出现。这些(以及许多其他)无限循环的陷阱通常可以通过以下方式避免

  • 将无限循环转换为有限循环
  • 设置迭代次数的最大值
  • 完全使用完全不同的范式。

使用IPC时,程序的一部分正在收听来自程序其他部分或其他程序的消息,最后一个选项是最好的。使用基于事件的方法可以防止无限循环。MATLAB 以事件和侦听器的形式支持这一点。这是 MATLAB 中OOP的一部分,因此您必须已经遵循 OOP,或者将您拥有的所有内容都转换为 OOP 才能使用它。

于 2013-07-10T07:40:50.657 回答