如何并行连续运行相同的matlab函数

时间:2019-08-07 08:43:05

标签: matlab timer parallel-processing matlab-guide

我是Matlab的新手,我目前正在研究Matlab代码,该代码可捕获图像并检测该图像上的浪费量。我已经有了捕获图像并在此图像上检测到浪费量的代码。  但是,此代码仅适用于一台摄像机。我不知道如何使此代码可用于多个摄像机,以便多个摄像机可以并行工作。

假设我安装了3台摄像机,而不是一台。使三台摄像机使用相同的代码并行运行的方式可能是什么。

1 个答案:

答案 0 :(得分:0)

timer的不同实例默认情况下会并行执行队列任务。

例如,使用

t1=timer;
t2=timer;
t3=timer; % Calling the constructor in separate occasions should create independent instances.

t1.StartDelay=2;
t2.StartDelay=3;
t3.StartDelay=5; % please print the fields to screen to see that t1, t2, t3 are not linked

[t1.TimerFcn, t2.TimerFcn, t3.TimerFcn]=deal(@(~,~)disp(num2str(toc)));

start(t1);start(t2);start(t3);tic

我的结果是

1.9977
3.005
5.0011

(如您所见,timer并不十分精确。您应该看到不同但相似的结果。)

从结果中,您可以看到timer默认是 ,即。每个TimerFcn实例一次timer的调用,将任务并行排队。如果不是这种情况,您应该在cmd中看到2、5、10。

因此,您可以在上面的示例中将TimerFcn调整为适合您的上下文。如果您所处的环境有特殊问题,请在问题中指定在concrete, minimal, self-contained and reproducible example

中遇到的问题

对于定期呼叫,您可能必须调整'BusyMode'字段或使用自定义的handler class