如何在MATLAB中进行线程处理?我想同时运行一个函数在两个变量上,应该怎么做?
如何在MATLAB中进行线程处理?我想同时运行一个函数在两个变量上,应该怎么做?
并行工具箱有一些工具可能会对您有所帮助。以下是从Matlab帮助中复制的一些示例:
matlabpool % Use default parallel configuration
spmd % By default uses all labs in the pool
INP = load(['somedatafile' num2str(labindex) '.mat']);
RES = somefun(INP);
end
然后,实验室中RES
的值可以从客户端访问,例如从实验室1访问为RES{1}
,从实验室2访问为RES{2}
,以此类推。
您还可以查看parfor
作为for
的简单并行替代。希望这能帮到您,即使它不完全是您想要的。
我不相信MATLAB有任何内置的多线程支持。这来自我最近与同事的一次对话以及快速谷歌搜索。
希望这可以帮到你。
您可以使用MEX文件和std::thread
来完成(请参见此处)。
我尚未尝试从MEX文件调用mexEvalString
,很可能会导致运行时错误或在执行期间冻结MATLAB。但是,如果您可以在C++中编写该特定代码片段,则可能是您要寻找的内容。