我正在大学物理系从事一项研究项目。在实验中,我们使用MokuLab(也称为Moku或Pymoku)来收集数据,并在收集数据时流式传输。 MokuLab可以使用Python进行操作。为了进行数据分析,我们使用MATLAB进行计算并在界面中显示数据。对于我的研究项目,我的工作是制作执行以下操作的MATLAB代码和用户界面:
总体而言,我对调用python脚本的MATLAB部分没有任何疑问。我当前的问题是,我不知道在进行后台数据分析时如何移动调用流的函数。因此,我想知道是否有人知道如何调用MATLAB中的函数,然后使其在后台运行。我可以通过什么方式做到这一点?
虽然我还没有正式尝试过任何方法,但我一直在寻找可以帮助我完成此任务的选项。我的老师建议的一种选择是使用并行处理。但是,似乎MATLAB初始化parpool
花费了很长时间,而且我对这种编程风格也不太熟练。我目前仍在学习。我还考虑过使用计时器函数调用该函数,但是我认为这不会给我太多对流的控制。
为了直观了解我想要的东西,假设我有一个MATLAB函数,可在该函数启动流并进行数据分析:
function initiateMokuStream(obj)
py.SomeModule.InititateStream();
print('Stream is running');
while (StreamRuns == True)
obj.file1 = open('ch1.txt');
obj.file2 = open('ch2.txt');
SecondDemodAnalysis(obj.file1,obj.file2,other args);
end
print('Stream is over, there is no more data to collect');
end
预期结果,即调用该函数后将显示'Stream is running'
。之后,用户仍然可以执行其他任何操作,而不必等待流结束并打印'Stream is over, there is no more data to collect'
。