链接到 EXCEL DDE 的 MATLAB 代码不会暂停我应该怎么办?

问题描述

我正在将 MATLAB 代码链接到 Excel 中的 DDE 应用程序。 它工作正常,但是每当我尝试运行代码时,操作都会在不考虑每次暂停的情况下完成。这部分以正确的方式暂停,因为它应该是:

channel = ddeinit('excel','C:\VTScada\NewApplication\Application.xlsx')
%Inserire valori iniziali e finali
s_start = input('s_start','s')
pause(1)

当我运行 remaning 代码时,就像这样,就像 MATLAB 将所有暂停值相加。然后,一段时间后,它以非常快速的方式运行所有代码,而不考虑每次暂停。

ddepoke(channel,'r18c2',1)
pause(10)
ddepoke(channel,0)
ddepoke(channel,0)

我试图用代码解决这个问题

pause('on')
pause(10)
pause('off')

但事实证明,在这种特殊情况下,MATLAB 根本不考虑暂停。这似乎使情况变得更糟。我该怎么办?

解决方法

Matlab pause 命令不仅仅意味着“等待 N 秒”;它与图形管道和其他东西交互。

这是一个黑客,但尝试这样做而不是pause

java.lang.Thread.sleep(10 * 1000);

这是一个较低级别的操作,它将以更无条件的方式暂时停止程序的执行。 * 1000 之所以存在是因为 sleep 以毫秒而不是秒为单位获取其输入。

,

我通过删除 if 之后的“{}”并添加“Java.lang.Thread.sleep()”方法而不是 Pause() 方法来解决问题。

无论如何感谢大家的帮助