我正在将MATLAB代码链接到Excel中的DDE应用程序。它工作得很好,但每当我尝试运行代码时,操作都是在不考虑每次暂停的情况下完成的。这部分以正确的方式暂停,因为它应该是:
channel = ddeinit('excel','C:VTScadaNewApplicationApplication.xlsx')
%Inserire valori iniziali e finali
s_start = input('s_start','s')
pause(1)
当我运行重新生成的代码时,比如这样,就像MATLAB对所有暂停值求和一样。然后,一段时间后,它以一种非常快速的方式运行所有代码,每次都不考虑停顿。
ddepoke(channel,'r18c2',1)
pause(10)
ddepoke(channel,'r18c2',0)
ddepoke(channel,'r18c2',1)
pause(10)
ddepoke(channel,'r18c2',0)
我试图用代码来解决这个问题
pause('on')
pause(10)
pause('off')
但事实证明,在这种特殊情况下,MATLAB根本不尊重暂停。这似乎使情况恶化。我该怎么办?
Matlabpause
命令不仅仅意味着";等待N秒";;它与图形管道等交互。
这是一个破解,但试着这样做,而不是pause
:
java.lang.Thread.sleep(10 * 1000);
这是一个较低级别的操作,它将以一种更无条件的方式暂时停止程序的执行。* 1000
之所以存在,是因为sleep
的输入单位是毫秒而不是秒。
我通过删除if后面的"{}"并添加"Java.lang.Thread.sleep(("方法而不是Pause((方法来简化问题。
感谢大家的帮助,无论如何